我正在运行一些执行[NSDictionary objectForKeyedSubscript:]的代码,它在iOS 5上崩溃,但不是iOS 6.我正在使用xcode 4.5.2并针对iOS 6.0 SDK进行编译。
我认为这可以在iOS 5上运行,因为它只是一个编译器功能?我错了吗?我可以自己编写这些函数的版本,但我担心其他错误,因为我希望它可以工作。
答案 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)
iOS6之前的SDK有一种解决方法
结帐问题:Is there any way to get the neat Objective-C literal indexing feature in Xcode 4.4?