使用以下方法获取故事板实例:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"storyboardName" bundle:nil];
我已经注意到"如果不存在与故事板资源文件匹配的名称,则抛出一个带有描述的异常:找不到名为' XXXXXX'的故事板。捆绑...."。我知道处理这个方法不能太小心。
我的问题是有没有办法捕获异常并手动处理它。 任何指示?
答案 0 :(得分:0)
NSString *sbName = @"storyboardName";
UIStoryboard *sb;
@try {
sb = [UIStoryboard storyboardWithName:sbName bundle:nil];
}@catch (NSException *exception) {
[self warnMissingStoryBoard:sbName];
//handle here...
return;
}
//use sb here...
答案 1 :(得分:0)
UIStoryboard *st;
@try{
st = [UIStoryboard storyboardWithName:@"XXXXXX" bundle:nil];
}@catch (NSException *exception)
{
NSLog (@"%@",[exception description]);
return;
}
在这种情况下,如果storyboardWithName:@“XXXXXX”不存在,那么代码将进入catch块,我们可以手动进行必要的处理。我刚刚记录了异常的描述。我们可以在该块中进行任何处理而不会导致代码崩溃