在swift 3中没有捕获的objective-c异常执行catch处理程序

时间:2016-11-01 21:19:29

标签: try-catch swift3 throw nsexception

我在swift代码库中使用了一个objective-c库。该库可能会抛出异常。不幸的是,Swift 3中没有捕获异常。我如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

一般来说,使用Objective-C异常处理并不是一个好主意,但有时它是必要的。 ;)

Swift异常处理与Objective-C完全不同。您无法直接在Swift中捕获Objective-C异常。相反,你应该编写一个Objective-C包装器,e。 G:

index(where:)

您应该从Swift拨打@implementation NSDictionary(NoException) - (id)noExceptionValueForKey:(NSString *)inKey { @try { return [self valueForKey:inKey]; } @catch(NSException *anException) { // More exception handling if neccessary return nil; } } @end 而不是noExceptionValueForKey: