0

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

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

4

3 回答 3

3

好的,我将回答我自己的问题,尽管我不完全理解它失败的原因。

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

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

这是我的命名错误,因为在应用程序完全运行之前调用了加载方法。我已经更改了函数的名称,一切都很好。

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

也许这并不奇怪。

于 2012-11-24T20:25:10.107 回答
3

Apple 开发人员中 IOS 的 NSDictionary 参考

在 iOS 6.0 及更高版本中可用。

于 2012-11-24T19:24:15.547 回答
0

iOS6 之前的 SDK 有一个解决方法

在这里结帐问题:有什么方法可以在 Xcode 4.4 中获得简洁的 Objective-C 文字索引功能?

于 2012-12-18T04:22:12.323 回答