界面生成器中的死插座/操作错误

Posted

技术标签:

【中文标题】界面生成器中的死插座/操作错误【英文标题】:Error on Dead Outlets / Actions in Interface Builder 【发布时间】:2013-12-18 10:03:30 【问题描述】:

有没有办法让 Xcode 拒绝构建应用程序,因为我的 Xib、Nib 或 Storyboard 中有一个死的出口或动作?我经常构建一个应用程序,却发现它崩溃了,因为接口构建器文件指向了我的类上不再存在的键。

我慢慢得出结论,最好以编程方式构建这些 UI,但我想知道是否有办法至少对我的旧 Xcode 项目提出警告?

【问题讨论】:

你使用哪个版本的 Xcode..? 它与构建应用程序无关。当然,如果它的洪水尚未设置或其他东西,它可能会显示警告。如果您能简要说明您遇到的错误,也许我们可以为您提供帮助。 没有运行时问题。但是假设我有一个带有一个名为“标签”的插座的类,其中一个 UILabel 在 IB 中连接了它。但是后来我在代码中重命名了那个插座,但忘记更新 IB。那么我的应用程序会崩溃,但我可能不知道为什么,我想知道是否有 xcode 告诉我的方法。 我刚刚问了自己同样的问题,想知道为什么这不会与其他 IB 警告(如 内容大小不明确不支持的配置)一起出现>。 Xcode 甚至在Connections inspector 中显示了一个小感叹号。为什么不将其升级为完整警告? 是的,编译器足够聪明,它可以对 AST 进行基本的遍历,以找出插座不再正确连接。在 developer.apple.com 上可能对苹果提出了很好的要求 【参考方案1】:

嗯,它不能。 Objective-C的本质是动态的,所以在编译/链接阶段无法确定xib和代码之间的联系。

你可以实现

-(void)setValue:(id)value forUndefinedKey:(NSString *)key NSLog(@"Key:%@", key);

找出缺少的东西。 (缺失的网点总算到这里了。)

【讨论】:

以上是关于界面生成器中的死插座/操作错误的主要内容,如果未能解决你的问题,请参考以下文章

XCode 3.2.6 界面生成器未连接

界面生成器中的错误?安全区域超出窗口范围

在调试模式下查找界面生成器中的按钮调用的操作

Xcode插座生成不会生成@synthesize

界面代码生成......Visual Studio 2015 中的快速操作和重构功能

如何在“路由器插座”内生成 PDF 内容?