在Xcode中,我们可以在StoryBoard编辑界面或者是xib编辑界面中通过“Control键+拖拽“的方式将某个界面元素和对应的代码文件连接起来,在代码文件中创建outlet。
不过,如果你的运气不太好,执行以上操作的过程中你可能会遇到下面这样的错误:
Could not insert new outlet connection: Could not find any information for the class named "xxx".
其中的“xxx”就是你的目标代码文件中的类名。
如果你遇到这样的问题,拿着上面的错误消息去百度一下会发现很多相关的内容,有各种各样的解决方法,不过效果就众说纷纭,有人说这个方法好用,有人说那个方法好用,在这里就整理一下常见的一些情况和对应的解决方法。
首先第一种情况是最简单的,也是最容易被忽略的,就是你在新建类的时候没有选择将这个类加入到对应的“Target”中。
检查方法很简单,选中你需要操作的类的.m文件,在“File inspector”界面的“Target Membership”中确认对应的“Target”有没有选中,如果没有选中就说明你在创建类的时候犯了各小小的错误。
修改方法很简单,直接在“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”按钮,Xcode会删除该项目的DeriveData,然后自动重新生成一个。
希望上面的方法可以帮助你解决“Could not insert new outlet connection”的问题。