界面生成器中的死插座/操作错误
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);
找出缺少的东西。 (缺失的网点总算到这里了。)
【讨论】:
以上是关于界面生成器中的死插座/操作错误的主要内容,如果未能解决你的问题,请参考以下文章