Objective-C iphone: попробуйте перехватить исключения - PullRequest
0 голосов
/ 25 марта 2011

я использую kumulos для доступа к базе данных. это код, о котором я говорю:

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

Теперь, если [theResults objectatindex: 0] вернет "ноль", то это происходит каждый раз, когда происходит сбой поэтому, если пользователь вводит что-то, чего нет в базе данных, происходит сбой, я хочу поймать это исключение (исключение NSRange).

Спасибо

Ответы [ 2 ]

4 голосов
/ 25 марта 2011

Я думаю, что это будет работать для вас, не требуя обработки исключений.

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

Я предполагаю, что theResults - это NSArray (или подкласс).

1 голос
/ 25 марта 2011

либо вы проверяете, что [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: -)

...