1

我正在将一个支持 ios 5 的项目转换为 ios 4 并且遇到了一些困难。它使用类AFNetworking,我的问题在以下行:

iOS 5:(效果很好)

self.responseJSON =[NSJSONSerialization JSONObjectWithData:self.responseData options:0 error:&error];

因为NSJSONSerialization在 iOS 4 中不受支持,所以我使用这个:

self.responseJSON = AFJSONDecode(self.responseData, &error);

是什么给了我错误:

Undefined symbols for architecture i386:
  "_AFJSONDecode", referenced from:
      -[AFJSONRequestOperation responseJSON] in AFJSONRequestOperation.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
4

2 回答 2

1

AFNetworking 页面的要求部分指出:

为了与 iOS 4.3 兼容,请使用最新的 0.10.x 版本。

查看版本 0.10.1的代码,我看到文件AFJSONUtilities.m,它似乎处理 JSON 解码。这在最新版本的 AFNetowrking 中不存在,因为它需要具有 NSJSONSerialization 的 iOS 5 或更高版本。

您可能想尝试版本 0.10.1(如果您还没有的话),而不是修改当前版本以在 iOS 4 上运行,因为在处理 JSON 问题后您可能会遇到额外的障碍。

于 2013-01-01T15:20:21.783 回答
0

您最好的选择是在 iOS 4 及更早版本上使用第三方库进行 JSON 处理。我会推荐 JSONKit。https://github.com/johnezang/JSONKit

于 2013-01-01T15:11:15.020 回答