我知道这是一种欺骗,但我还没有足够的声誉对原帖发表评论,虽然我没有答案,但我确实有更多有用的信息(a具体例子)。主持人,请随意将其移至正确的位置。
使用最新的XCode 8 beta 6(iOS 10 SDK)编译我的代码时,我得到一个例外"由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:' - [UIDeviceRGBColor countByEnumeratingWithState:objects:count:]:无法识别的选择器发送到实例0x600000071340'"
这在调用期间发生:
auto viewController = [[[UIViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
我已经通过将我的项目削减到最低限度来解决问题,这将编译并仍然表现出问题。你可以在这里下载:
请注意,我删除了大量代码,几乎所有类都消失了,这导致从xib引用的不存在的类会产生很多警告(而不是错误)。但这并不重要,代码仍然可以编译并运行iOS 9 SDK。然而,在使用iOS 10 sdk进行编译后,它会在模拟器和运行iOS 9的设备上崩溃。
您可以通过更改" #if 0"来解决问题。进入" #if 1"在文件" HackForUnrecognizedSelectorInIOS10.m"。这会为UIColor添加一个定义缺少选择器的类别。但显然你无法将其添加到运输代码中,它只是暂时的权宜之计,可以继续发展。
我提交了一份错误报告(28153870)。但如果有人知道如何在没有丑陋黑客的情况下避免这个问题的任何更多信息,欢迎任何信息。
由于
Michel Colman
答案 0 :(得分:41)
当我尝试使用相同的配置(XCode 8 beta 6,iOS 10 SDK)编译和运行我的项目时,我遇到了类似的问题,除了我的错误消息是:
***由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:' - [UIDeviceRGBColor length]:无法识别的选择器发送到实例0x600000479280'
我注意到只有当视图是init时才使用接口文件,即Xib和Nib,才会出现此问题。我通过以下方式解决了这个问题:
答案 1 :(得分:4)
就我而言,我需要在产品常规设置中将项目部署目标更改为8.0。感谢接受答案的提示!