我知道这是一种欺骗,但我还没有足够的声誉来评论原始帖子,虽然我没有答案,但我确实有更多有用的信息(一个具体的例子)。版主,请随意将其移动到适当的位置。
使用最新的 XCode 8 beta 6 (iOS 10 SDK) 编译我的代码时,出现异常“由于未捕获的异常‘NSInvalidArgumentException’而终止应用程序,原因:‘-[UIDeviceRGBColor countByEnumeratingWithState:objects:count:]: unrecognized选择器发送到实例 0x600000071340'"
这发生在通话期间:
auto viewController = [[[UIViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
我通过将我的项目削减到可以编译并仍然出现问题的最低限度来隔离问题。你可以在这里下载:
请注意,我取出了很多代码,几乎所有的类都消失了,这导致了很多针对从 xib 引用的不存在的类的警告(不是错误)。但这没关系,代码仍然可以在 iOS 9 SDK 上正常编译和运行。然而,在使用 iOS 10 sdk 编译后,它在模拟器和运行 iOS 9 的设备上都崩溃了。
您可以通过在文件“HackForUnrecognizedSelectorInIOS10.m”中将“#if 0”更改为“#if 1”来解决此问题。这会添加一个类别,为 UIColor 定义缺少的选择器。但显然您不能将其添加到运输代码中,这只是继续开发的临时权宜之计。
我提交了错误报告 (28153870)。但是,如果任何人有更多关于如何在没有丑陋黑客的情况下避免这个问题的信息,欢迎提供任何信息。
谢谢
米歇尔·科尔曼
最佳答案
当我尝试使用相同的配置(XCode 8 beta 6、iOS 10 SDK)编译和运行我的项目时,我遇到了类似的问题,除了我的错误消息是:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIDeviceRGBColor length]: unrecognized selector sent to instance 0x600000479280'
而且我注意到只有在使用接口(interface)文件(即 Xib 和 Nib)初始化 View 时才会出现此问题。我通过以下方式解决了这个问题:
然后再次编译并运行您的项目,这应该可以解决您的问题,但我不确定这背后的原因。我对您的示例项目进行了同样的尝试,它也解决了问题。
关于ios - 无法识别的选择器 UIDeviceRGBColor countByEnumeratingWithState :objects:count:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39318191/