我正在尝试使用 obj.setValue(value, forKey: key)
在我的 Swift 代码中设置一个 @objc
对象的值。
当对象具有正在设置的属性时,它工作正常。但如果没有,我的应用程序就会严重崩溃,并出现未捕获的 NSException
(“类不符合键值编码标准……”)。
我如何才能像在 Objective-C 中那样捕获和吸收此异常,以免使我的应用程序崩溃?我尝试将它包装在 Swift try-catch 中,但它提示说没有任何指令抛出并且什么都不做。
最佳答案
看这个answer :
//
// ExceptionCatcher.h
//
#import <Foundation/Foundation.h>
NS_INLINE NSException * _Nullable tryBlock(void(^_Nonnull tryBlock)(void)) {
@try {
tryBlock();
}
@catch (NSException *exception) {
return exception;
}
return nil;
}
关于swift - 在 Swift 中捕获 Objective-C 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35119531/