这真的很奇怪。
我们正在访问一个始终返回数组的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会将数组解析为dict。坦率地说,使用来自twitter的数据是不可能的。那么这里发生了什么?