无法识别的选择器 UIDeviceRGBColor countByEnumeratingWithState:objects:count:
Unrecognized selector UIDeviceRGBColor countByEnumeratingWithState:objects:count:
我知道这是一个骗局,但我还没有足够的声誉来评论原始 post 而且,虽然我没有答案,但我确实有更多有用的信息(一个具体的例子)。版主,请随意将此移动到适当的位置。
在使用最新的 XCode 8 beta 6 (iOS 10 SDK) 编译我的代码时,出现异常 "Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIDeviceRGBColor countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 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)。但是,如果任何人有更多关于如何在没有丑陋的 hack 的情况下避免这个问题的信息,欢迎提供任何信息。
谢谢
米歇尔·科尔曼
当我尝试使用相同的配置(XCode 8 beta 6,iOS 10 SDK)编译和 运行 我的项目时,我遇到了类似的问题,除了我的错误消息是:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIDeviceRGBColor length]: unrecognized selector sent to instance 0x600000479280'
而且我注意到只有在使用接口文件(即 Xib 和 Nib)初始化视图时才会出现此问题。我通过以下方式解决了这个问题:
打开您的界面文件,在右侧面板中,导航到“文件检查器”选项卡。
将突出显示的属性更改为 "iOS 7.0 and Later"(或以后的任何 iOS 版本)
然后再次编译并 运行 您的项目,这应该可以解决您的问题,但我不确定这背后的原因。我对您的示例项目进行了同样的尝试,它也解决了问题。
就我而言,我需要在产品常规设置中将项目部署目标更改为 8.0。感谢已接受答案的提示!
我知道这是一个骗局,但我还没有足够的声誉来评论原始 post 而且,虽然我没有答案,但我确实有更多有用的信息(一个具体的例子)。版主,请随意将此移动到适当的位置。
在使用最新的 XCode 8 beta 6 (iOS 10 SDK) 编译我的代码时,出现异常 "Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIDeviceRGBColor countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 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)。但是,如果任何人有更多关于如何在没有丑陋的 hack 的情况下避免这个问题的信息,欢迎提供任何信息。
谢谢
米歇尔·科尔曼
当我尝试使用相同的配置(XCode 8 beta 6,iOS 10 SDK)编译和 运行 我的项目时,我遇到了类似的问题,除了我的错误消息是:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIDeviceRGBColor length]: unrecognized selector sent to instance 0x600000479280'
而且我注意到只有在使用接口文件(即 Xib 和 Nib)初始化视图时才会出现此问题。我通过以下方式解决了这个问题:
打开您的界面文件,在右侧面板中,导航到“文件检查器”选项卡。
将突出显示的属性更改为 "iOS 7.0 and Later"(或以后的任何 iOS 版本)
然后再次编译并 运行 您的项目,这应该可以解决您的问题,但我不确定这背后的原因。我对您的示例项目进行了同样的尝试,它也解决了问题。
就我而言,我需要在产品常规设置中将项目部署目标更改为 8.0。感谢已接受答案的提示!