在IOS4上出现dyld错误:找不到符号_OBJC_CLASS_$_NSJSONSerialization

5
在iOS4上进行测试时,我遇到了以下错误:

dyld: Symbol not found: _OBJC_CLASS_$_NSJSONSerialization

而在iOS5上则能正常工作。
如有帮助将不胜感激。

5
NSJSONSerialization类是在iOS 5上新增的。在iOS 4上,你需要使用第三方库,比如http://stig.github.com/json-framework/。 - hoshi
3个回答

7

以下是对AFNetworking自述文件的翻译:

"如果可用,AFNetworking将使用NSJSONSerialization。如果你的应用程序目标平台没有这个类,你可以将下列任意一个JSON库包含在你的项目中,以便AFNetworking自动检测和使用它们."

话虽如此,为了避免出现以下错误,请确保两个事项:

  1. 已经包含了JSONKit / SBJson / YAJL。
  2. "Deployment Target"比iOS5低,这样AFNetworking就会意识到它无法使用NSJSONSerialization,并会退而求其次选择其中一个包含的JSON解析类。

Shai.


3

@hoshi 是正确的。在 iOS 5.0 以下的设备上无法使用 NSJSONSerialization。

这里是苹果官方文档。我自己的代码也使用 SBJson 库。


但我没有使用它(至少我不知道)。 我正在使用JSONKit类。 - shaloms
搜索您的代码,看看是否有任何 NSJSONSerialization 实例。 - Michael Dautermann
我已经搜索过了,关于NSJSONSerialization实例没有任何结果。 - shaloms
你的代码中有东西在请求NSJSONSerialization,可能是你包含的其他库之一吗?如果你无法解决这个问题,最终你只能允许你的应用在iOS 5.0及更高版本上运行(这对你的雇主来说希望不会是一个大问题)。 - Michael Dautermann
我也认为我正在使用的一个框架正在请求那个类。不幸的是,我必须支持IOS 4.0设备,这意味着我必须深入研究并找出NSJSONSerialization在哪里被使用。无论如何,感谢您的帮助。 - shaloms

1

看起来 AFNetworking 类是使用 NSJSONSerialization 的那个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接