新目标中无法识别 IBOutlet

Posted

技术标签:

【中文标题】新目标中无法识别 IBOutlet【英文标题】:IBOutlet not recognized in new target 【发布时间】:2017-01-08 11:55:15 【问题描述】:

我最近在我的 XCode swift ios 应用程序项目中添加了一个新目标,除了情节提要中的一个 UIViewController 之外,所有目标都可以正常工作。当我在我的应用程序流程中到达它时,我会遇到以下崩溃,这在针对原始目标运行时不会发生。

2017-01-08 11:47:22.714 SmoothCam Free[1179:269737] Unknown class _TtC6SmoothCam3PicReviewViewController in Interface Builder file.
2017-01-08 11:47:22.834 SmoothCam Free[1179:269737] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x1576f610> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key altitudeKey.'

我检查了 PicReviewViewController 类是为这两个目标构建的。在主故事板文件中,我检查了此“altitudeKey”标签的 IBOutlet 链接是否正常:

有谁知道这可能是什么原因造成的,为什么我只在新目标上遇到这个问题?

【问题讨论】:

您是否为这个新目标设置了模块? 我不这么认为,你到底是什么意思?我已经复制了目标,更改了名称,并指向了一个新的 Info.plist,并相应地进行了更新 首先检查您是否将此类添加到目标中。如果你这样做了,那么当你复制你的目标时出现了问题。有时这可能是因为应用程序委托的模块未在自定义类下的 IB 中设置。 关于@jvarela 的评论:在 IB 中,转到 Identity Inspector。第二个下拉列表标记为“模块”。你可以从那里选择你的目标。 【参考方案1】:

就是这样。对于这个特定的自定义 ViewController,在身份检查器的自定义类下的 IB 中设置了第一个模块。我取消了它,现在它以灰色显示“当前模块 - 模块名称”并且适用于两个目标。谢谢两位!

【讨论】:

以上是关于新目标中无法识别 IBOutlet的主要内容,如果未能解决你的问题,请参考以下文章

无法在 UITableViewCell 内识别 UIScrollView,无错误

UIViewController 控制器无法识别委托

Reactstrap 工具提示导致错误:无法在 dom 中识别目标“TooltipExample”

目标 C 错误 -[__NSArrayI 长度]:无法识别

iOS 测试目标无法识别主应用程序的文件

在 DOM 中添加新元素后,该元素无法识别旧脚本