【发布时间】:2015-07-23 13:07:12
【问题描述】:
我试图在 Obj-C 中创建一个类别并使用 @try-catch,因为没有其他方法可以检查 UIStoryboard 中的标识符是否存在。
- (UIViewController *)viewControllerWithID:(NSString *)key {
UIViewController *vc;
@try { // ERROR: Cannot use '@try' with Objective-C exceptions disabled
vc = [self instantiateViewControllerWithIdentifier:key];
}
@catch (NSException *ex) {}
return vc;
}
不能在禁用 Objective-C 异常的情况下使用“@try”
我用谷歌搜索了那个错误,发现我必须检查Enable Objective-C Exceptions 是否在构建设置中设置为yes。我检查并设置为yes。
这是我找到的唯一解决方案,但它不起作用。
我使用 XCode 6.2,这是一个 Swift 项目,但 Swift 不支持 @try-catch,所以这就是我在 Obj-C 中这样做的原因。
当我将相同的设置设置为 no 时,我会收到一条重复的错误消息,而当我再次将其设置为 yes 时,我只会收到一条错误消息。这真的很奇怪。
【问题讨论】:
-
您是否尝试过清理(Cmd-Shift-K)然后再次尝试构建?有时 Xcode 不会“忘记”错误,即使它们在项目被清理之前得到修复。
-
但我没有改变任何东西
-
这一定是xcode 6.2的bug
-
你能解释一下为什么你需要这个类别吗?在什么情况下你会不知道你是否有一个具有特定标识符的控制器?
-
@rdelmar URL 方案等
标签: ios objective-c xcode exception try-catch