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を超えるとすべてがうまく機能しますが、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 it)をログに記録すると、答えは1つだけになります。すべてのパラメータを持つオブジェクト全体(これが正しい名前かどうかはわかりません)
どうしてそれができるのでしょうか?