我有一个在XCode 6 beta中可以正常编译的项目,但是现在在GM中,它将无法为iOS设备编译,并出现以下错误:
myController.m:393:9: No visible @interface for 'UIDevice' declares the selector 'initialize:'
在这一行:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
对于模拟器,它仍然可以编译。我还尝试了以下修复程序:
...但是没有运气。编译时同样的错误。
救命! iOS8即将到来,我们的时间紧迫,这确实令人头疼。
PS:我们还在工作区中使用Cocoapods,这是值得的。
最佳答案
好吧,经过一番梳理,我解决了这个问题。该应用程序是一个iOS 8应用程序,具有嵌入式Today Extension。
事实证明,在添加Today扩展时,XCode添加了一个构建设置:
“启用模块(C和Objective-C):是
我的项目和包含我的应用程序目标均未使用此构建设置,但是将其设置为YES会导致尝试自动链接框架(并失败)以及最终与头文件相关的各种相关奇数错误消息。
由于源文件既是包含应用程序的目标,又是Today Extension的目标的成员,因此问题变得更加复杂。
希望此信息对其他人有帮助。
卡尔