首页 > 技术文章 > ios开发之--解决“Could not insert new outlet connection”的问题。

hero11223 2018-03-08 19:03 原文

在Xcode中,我们能够在StoryBoard编辑界面或者是xib编辑界面中通过“Control键+拖拽“的方式将某个界面元素和相应的代码文件连接起来。在代码文件里创建outlet。


只是。假设你的运气不太好。运行以上操作的过程中你可能会遇到以下这种错误:

Could not insert new outlet connection: Could not find any information for the class named "xxx".

当中的“xxx”就是你的目标代码文件里的类名。


假设你遇到这种问题。拿着上面的错误消息去百度一下会发现非常多相关的内容,有各种各样的解决方法,只是效果就众说纷纭,有人说这种方法好用,有人说那个方法好用,在这里就整理一下常见的一些情况和相应的解决方法。


首先第一种情况是最简单的,也是最easy被忽略的,就是你在新建类的时候没有选择将这个类增加到相应的“Target”中。

检查方法非常easy,选中你须要操作的类的.m文件。在“File inspector”界面的“Target Membership”中确认相应的“Target”有没有选中,假设没有选中就说明你在创建类的时候犯了各小小的错误。

改动方法非常easy,直接在“File inspector”界面的“Target Membership”中选上相应的target就好了。


假设你的情况和以上不符,有可能是你的项目Derive文件有点问题,解决方法有以下几种,原理都差点儿相同,就是尝试重建项目的一些后台文件。


1. 又一次将文件增加项目

操作步骤就是选中出问题的.m和.h文件,点删除键,然后选“Remove Reference”,这样就不会真正删除文件。

接着选“File -> Add Files to ...”菜单,在文件选择界面选择刚才的.m文件和.h文件将他们又一次增加项目中。


2. 直接删除DeriveData

操作步骤是关闭当前项目,然后关闭Xcode。然后通过Terminal或者是Finder找到以下的文件夹:

~/Library/Developer/XCode/DerivedData

在里面找到以你的项目开头的文件,将他们删除。

接着又一次启动Xcode


3. 在Organizer中删除项目的DeriveData

假设你对Mac操作系统不了解。不知道假设操作第2种解决方法,有一个更加直接的方法,就是在Xcode中选择“Windows->Organizer”,然后选择“Projects”,选中你正在处理的项目,点击“DeriveData”相应的“Delete”button,Xcode会删除该项目的DeriveData。然后自己主动又一次生成一个。

 

我用的是第二种,亲测有效

推荐阅读