当我得到超过 1 个对象时,一切正常,但是当它只有 1 个时,它的反应很奇怪,我找不到它的解决方案。
首先,我将所有内容都设置在一个数组中:
NSArray *array = [[[dictionary objectForKey:@"Response"] objectForKey:@"objecten"] objectForKey:@"object"];
if (array == nil) {
NSLog(@"Expected 'results' array");
return;
}
然后我在字典上使用 for 循环
for (NSDictionary *resultDict in array) {
SearchResult *searchResult;
NSString *wrapperType = [resultDict objectForKey:@"type"];
if ([wrapperType isEqualToString:@"rent"])
{
searchResult = [self parseHuur:resultDict];
}
if (searchResult != nil) {
[searchResults addObject:searchResult];
}}
因此,当结果返回超过 1 时,一切正常,但是当只有一个返回时,我得到:
-[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x6e52c30
*** Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: '-[__NSCFString objectForKey:]:
unrecognized selector sent to instance 0x6e52c30'
它指向这一行:
NSString *wrapperType = [resultDict objectForKey:@"type"];
我真的不明白...我在浏览器中使用相同的链接检查了 api 的结果,它确实返回了 1 个对象,但是当我记录 resultDict(NSlog 它)时,我只得到一个答案:id 而不是带有所有参数的整个对象(我不知道这是否是正确的名称)
怎么可能 ?