我知道这是一种欺骗,但我还没有足够的声誉来评论原始帖子,虽然我没有答案,但我确实有更多有用的信息(一个具体的例子)。版主,请随意将其移动到适当的位置。
使用最新的 XCode 8 beta 6 (iOS 10 SDK) 编译我的代码时,我收到一个异常“由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'-[UIDeviceRGBColor countByEnumeratingWithState:objects:count:]: unrecognized selector sent to实例 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)。但是,如果有人有更多关于如何在没有丑陋黑客的情况下避免这个问题的信息,欢迎提供任何信息。
谢谢
米歇尔·科尔曼