Исключения target-c, не обнаруженные в swift 3, делают обработчик catch
Я использую библиотеку Objective-C в моей быстрой базе кода. Библиотека может выдать исключение. К сожалению, исключение не попадает в Swift 3. Как обойти эту проблему?
1 ответ
В общем случае не стоит использовать обработку исключений Objective C, но иногда это необходимо.;)
Быстрая обработка исключений полностью отличается от Objective-C. Вы не можете поймать исключения Objective-C в Swift напрямую. Вместо этого вы должны написать оболочку Objective-C, например:
@implementation NSDictionary(NoException)
- (id)noExceptionValueForKey:(NSString *)inKey {
@try {
return [self valueForKey:inKey];
}
@catch(NSException *anException) {
// More exception handling if neccessary
return nil;
}
}
@end
Из Свифта вам следует позвонить noExceptionValueForKey:
вместо valueForKey:
,