0

kumulos を使用してデータベースにアクセスしています。これは私が話しているコードです:

NSString *location = [[theResults objectAtIndex:0] objectForKey:@"location"];

[theResults objectatindex:0] が「null」を返すと毎回クラッシュするため、ユーザーがデータベースにないものを入力するとクラッシュするため、この例外 (NSRange 例外) をキャッチしたいと考えています。

ありがとう

4

2 に答える 2

4

これは、例外処理を必要とせずに機能すると思います。

if ([theResults count] > 0) {
    NSString *location = [[theResults objectAtIndex:0] objectForKey:@"location"];
}

私はそれtheResultsNSArray(またはサブクラス)であると仮定しています。

于 2011-03-25T16:04:25.877 に答える
1

[theResults objectAtIndex:0] が nil を返さないことを確認するか、例外処理を使用します。

@try {
   NSString *location = [[theResults objectAtIndex:0] objectForKey:@"location"];  
}
@catch (NSRangeEception * e) {
   NSLog(@"catching %@ reason %@", [e name], [e reason]);
}
@finally {
   //something that you want to do wether the exception is thrown or not.
}

ただし、言語を少なくとも少し勉強するか、Googleで練習することをお勧めします:-)

于 2011-03-25T16:07:49.453 に答える