objectForKeyedSubscript:在iOS 5.1上崩溃

时间:2012-11-24 19:14:22

标签: objective-c ios5 ios6

我正在运行一些执行[NSDictionary objectForKeyedSubscript:]的代码,它在iOS 5上崩溃,但不是iOS 6.我正在使用xcode 4.5.2并针对iOS 6.0 SDK进行编译。

我认为这可以在iOS 5上运行,因为它只是一个编译器功能?我错了吗?我可以自己编写这些函数的版本,但我担心其他错误,因为我希望它可以工作。

3 个答案:

答案 0 :(得分:3)

NSDictionary reference for IOS in Apple developer

适用于iOS 6.0及更高版本。

答案 1 :(得分:2)

好的,我会回答我自己的问题,虽然我不完全理解为什么会失败。

使用objectForKeyedSubscript:等在iOS 5中运行良好(只要它是针对iOS 6 SDK编译的)。

问题是我将一个函数命名为+(void)load,并且在此函数中调用objectForKeyedSubscript:会因为找不到该方法而导致断言。

这是我的命名错误,因为在App完全运行之前调用了load方法。我已经更改了我的功能名称,一切都很顺利。

我假设在完全插入NSDictionary之前调用了+ load。奇怪的是,它在iOS 6下工作,而不是iOS 5。

也许这并不奇怪。

答案 2 :(得分:0)