私はNSArray 'courseArray'にデータを解析するためにJSONを使用しています。次に、このデータをNSPredicateでフィルタリングし、 'rows'に格納します。問題は、私は '行'が空であるかどうかを判断する方法を知らないということです。レコードが存在する場合、行には適切なオブジェクトが含まれますが、レコードが存在しない場合はアプリケーションがクラッシュします(NSLogを使用して空の配列の内容を表示しても、オブジェクトがない場合)。どうすればこの問題を解決できますか?objective-c空NSArrayエラー
if (dict)
{
courseArray = [[dict objectForKey:@"lab"] retain];
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"labNumber== %@",labSelected]; //filter
rows = [[courseArray filteredArrayUsingPredicate:predicate]retain];
}
[jsonreturn release];
self.formattedTextView.opaque = NO;
self.formattedTextView.backgroundColor = [UIColor clearColor];
NSLog(@"array %@",rows);
**NSDictionary *currentSelection = [rows objectAtIndex:0];** (app crashes at this line - [NSArray objectAtIndex:]: index 0 beyond bounds for empty array')
NSString *labNumber = [currentSelection objectForKey:@"labNumber"];
エラーを止める方法はわかりませんが([行数] == 0)、試みてみましたが、それでも動作しませんでした "if(rows!= nil) –
あなたのアプリは、 '[rows countFor]:0]'行で例外を発生させていますが、 '[rows count]'がゼロ以外の値にならないように、欠陥が問題を混乱させた? – Tommy