2016-11-01 13 views

답변

0

일반적으로 Objective-C 예외 처리를 사용하는 것은 좋지 않지만 때로는 필요합니다. ;)

스위프트 예외 처리는 Objective-C와 완전히 다릅니다. Swift에서 Objective-C 예외를 직접 catch 할 수는 없습니다. 대신에 Objective-C wrapper를 써야한다. g :

@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: 호출해야합니다.

+0

그렇다면 현재로서는 iOS 용 순수 Swift 애플리케이션을 작성하는 것이 실제로 불가능하다는 뜻입니까? – Jules

+0

@Jules : 불행히도 그렇습니다. 일부 드문 문제에 대해서는 Objective C가 필요합니다. Objective C 예외를 catch하는 것이 그 중 하나입니다. – clemens