我在这里想念的是什么:
+ (id) JSONObjectWithData:(NSData *)data {
#if __IPHONE_OS_VERSION_MAX_ALLOWED < 50000
//iOS < 5 didn't have the JSON serialization class
return [data objectFromJSONData]; //JSONKit
#else
NSError *jsonParsingError = nil;
id jsonObject = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonParsingError];
return jsonObject;
#endif
}
Run Code Online (Sandbox Code Playgroud)
我正在基础SDK 5.0上编译,部署版本是4.0.当我在带有4.2.1的iPhone 3G上运行时,我得到.....
dyld:未找到符号:_OBJC_CLASS _ $ _ NSJSONSerialization
启动时崩溃....
Mat*_*uch 17
#if __IPHONE_OS_VERSION_MAX_ALLOWED < 50000在编译时评估.如果使用iOS 5 SDK编译代码,则条件为false.无论如何都将使用NSJSONSerialization代码.
您应该检查NSJSONSerialization该类是否存在.像这样:
+ (id) JSONObjectWithData:(NSData *)data {
Class jsonSerializationClass = NSClassFromString(@"NSJSONSerialization");
if (!jsonSerializationClass) {
//iOS < 5 didn't have the JSON serialization class
return [data objectFromJSONData]; //JSONKit
}
else {
NSError *jsonParsingError = nil;
id jsonObject = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonParsingError];
return jsonObject;
}
return nil;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5264 次 |
| 最近记录: |