这真的很奇怪。
我们正在访问一个总是返回一个数组的 json Twitter API。即 https://twitter.com/statuses/user_timeline/485963081.json
我们的确是:
if([NSJSONSerialization class]) {
NSError *error = nil;
jsonResponse = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:&error];
DLog(@"JSON Parsing Error: %@", error);
} else {
NSString * jsonString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
jsonResponse = [jsonString JSONValue];
}
if([jsonResponse count] > 0) {
NSString *jsonText = [[jsonResponse objectAtIndex:0] objectForKey:@"text"];
twitterText = jsonText;
}
这在绝大多数情况下都有效。剩下的,我们得到这个:
[__NSCFDictionary objectAtIndex:]: unrecognized selector sent to instance
注意,所有错误都在 iOS5 上,所以 SBJSON 库不适用。
有时 NSJSONSerialization 将数组解析为字典。坦率地说,使用来自 twitter 的数据是不可能的。那么这里发生了什么?