错误在Xcode 6 – 视图控制器没有名为(子视图)的sockets

我刚刚在我的一个应用程序中遇到了这个错误,在检查了一些其他应用程序之后,也出现了同样的错误。 我的IBOutletsIBActions都没有连接了。 当我通过控制拖入.h文件重新创buildsockets时,sockets仍然在Connections Inspector> Outlets中显示错误,并说(视图控制器)没有名为(subview)的sockets。 在今天之前,我没有这个问题,那么与Xcode 6呢? 视图控制器正在引用Identity Inspector> Custom Class下的正确类。 我删除了派生的数据文件夹,删除了对.h文件的引用,清理了项目,并清除了构build文件夹。 这一切都没有奏效,在这个问题得到解决之前,我无法继续发展。

奥特莱斯显示感叹号。注意'easyLabel'

我断开easyLabel,并且插座消失。我无法通过拖放来重新连接它。

更新:几天后,我刚刚重新打开了项目,我的店铺旁边不再有惊叹号,我断开的“easyLabel”sockets又重新出现了。 我没有改变任何东西,所以我猜这是Xcode 6-6.1中的一个bug。

更新2:这个错误回来了。 每个sockets旁边都有感叹号。 如果我删除它们,我不能重新添加它们。 无法创build新的网点。 也不能给视图控制器一个自定义的类。 我真的只想在应用程序上取得一些进展,但这个问题不断重演。 真的再也忍受不了了。 任何帮助,将不胜感激。

重复: XCode 6:不能连接任何IBOutlet到ViewController,但这里的诀窍是:

您还可以看到,父视图和自定义类之间的链接被破坏(不再可见),这是一个巨大的问题。

我和我正在处理的应用程序有完全相同的问题,将XCode从5.xxx更新到6.1。 解决这个问题的办法是删除每个视图控制器的引用,并将它们重新添加到项目中。不幸的是,在某些情况下,实际上,当XCodeclosures时,所有连接都会再次丢失。

面对这个问题的每个人,这都是(烦人的)把戏:

  • 第1步:select.h和.m视图控制器文件
  • 第2步:删除这些文件的引用
  • 第3步:重新将文件添加到您的项目树
  • 第4步:打开故事板,最终重build项目和微笑

我可以理解这些事情可能会令人厌烦,但它对我来说很有效…希望它能帮助别人!

我有完全相同的问题,什么是打破我的故事板是事实,我的项目是在文件夹/ Dropbox(MyName)/ projects /

显然,有关空格和()的保pipe箱文件夹的名称是完全崩溃我的故事板,尝试我做了什么,并将您的项目完全移动到另一个文件夹,看看是否有帮助:)

我遇到了同样的问题,将Inspector> Custom Class下的类更改为其他types,将其保存并重新设置为正确的类后,连接正常显示。

我有一个Swift UIViewController子类的这个问题。 我删除了IB为我创build的原始视图,并添加了一个新的视图 – 我无法连接。

我去了文件所有者的身份检查员,并试图重新input它,认为它可能已被修改。 奇怪的是,类名没有自动完成。 XCode似乎无法真正看到我的课程。

我试图删除并重新添加.swift.swift文件,无济于事。 XCode将允许我手动input自己的类名,但不会自动完成。 似乎认为它不存在,或在这方面是无效的。

回头看我的代码,我有如下的东西:

 extension SomeViewController { func foo() -> Bool { return false } } class SomeViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } } 

它编译得很好,但在预感,我删除了扩展名。 我保存了文件,回到了.xib文件,并且能够再次使用自动完成function设置文件的所有者身份。 我也能够把这个观点联系起来。

如果扩展程序总是会破坏某些东西,那就太糟糕了,所以我又试了一次,这次是扩展后的扩展:

 class SomeViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } } extension SomeViewController { func foo() -> Bool { return false } } 

一切仍然在IB工作。 为了理智检查,我把这个扩展名移回到class级定义的前面,然后再把这些东西放在一边。

我看了XCode生成的* -Swift.h,至less相对于受影响的类,似乎没有什么区别,不pipe我把扩展名放在Swift文件中的位置,它们总是在@interface定义为头中的实际类。

所以,长话短说,在我的情况下,这是由于Swift扩展(我说扩展,因为我的实际代码有很多)在类定义之前。 在class级定义之后,我把他们移开了,问题就消失了。

对我来说,我不得不删除引用,并添加到我的项目-XIB-我的视图控制器的文件。 只是删除视图控制器.h / .m没有重置网点,但删除.xib并将其添加回来!

如果我不在实现类中重新定义它们,我只有在使用@protocol定义的IBOutlets时才会@protocol这个问题。

可能我们唯一能做的就是提交一个bug 。

为什么不更新你的Xcode 6.0.1到Xcode 6.1,苹果已经修复了很多错误。

下载Xcode 6

如果连接Interface Builder中的操作/sockets而不是辅助编辑器,是否会遇到同样的问题? 对于动作,尝试控制从IB中的对象拖动到第一个响应者对象(或任何你有你的类设置)。

实际上@robb发现了这个问题的解决方法,但是他发现的问题是,镜像磁盘上文件夹的项目组使用了不同的情况。

所以如果项目组是Broken / classone.m

并在磁盘上被打破/ classone.m

界面生成器找不到文件。 重命名组或文件夹以匹配案例解决了这个问题。

自从使用XCode 6.1以来,我遇到了同样的问题,上面的答案对我来说不起作用。 (删除/重新添加我的类文件,将类更改为其他东西,然后将其更改回来。唯一没有尝试的是从头创build一个新的项目。

我意外地注意到,我在MainMenu.xib中的'Application'占位符以某种方式将它的类设置为NSObject。 将其改为NSApplication似乎清除了“我的所有其他对象都没有名为”的问题。

Xcode 6.3.2。 类似的问题。 我一直在研究的项目突然“断开”IBOutlets并显示错误

 view controller does not have an outlet named (subview) 

该项目仍然build设和工作,如果你hover在代码IBOutlets它认为仍然连接。

我已经确定了这一点(至less在我的情况下)存储在Dropbox项目(类似于上面的post)的问题。 对我来说修复是非常容易的:

将项目文件夹从保存箱拖到桌面上。 然后将项目拖回到保pipe箱中。

这个解决scheme已经解决了许多项目的问题。

大约两个月前,我从Xcode 6.x更新到Xcode 7.x,没有任何问题。 但今天早上我遇到了这个bug。 我尝试了几乎所有的东西,但没有任何工作。 但贾斯汀·米德尔顿的解决scheme给了我一个主意。

当我将项目从10.9 SDK切换到10.11 SDK时,我决定要我的代码保持向后兼容,以防万一我不得不恢复到Xcode 6.2。 所以我把预处理器代码放在我的几个对象声明中,例如:

 // This caused the (!) problem in Interface Builder #if( MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_10 ) @interface CLChatWindowController : NSObject <WebPolicyDelegate, WebUIDelegate, WebFrameLoadDelegate> #else @interface CLChatWindowController : NSObject #endif ... // Removing all the Preprocessor code fixed the problem @interface CLChatWindowController : NSObject <WebPolicyDelegate, WebUIDelegate, WebFrameLoadDelegate> .... 

一旦我删除了所有预处理器代码,Interface Builder中的(!)字符就消失了,一切都恢复正常了。 希望能帮助别人。

我在Xcode 7.0.1中使用了一个快速项目。 具体来说,桌面单元连接被打破(永久),而其他事情仍然奏效。 删除派生的数据,重新启动等 – 没有任何工作。

我的解决scheme最终是:

  1. closuresxcode项目
  2. 删除项目的导出数据(“窗口” – >“项目”)
  3. 重命名整个项目/源文件夹,即。 项目 – >项目1
  4. (根据需要更新sourcetree等源代码pipe理书签)
  5. 在xcode中打开项目(来自finder):注意故事板和其他一些文件是红色的。 删除引用,重新添加它们。 繁荣,它的作品。

请注意,删除对故事板的引用并读取它,即使删除了派生数据也是不够的。 整个源文件夹的重命名对我来说是必要的。