崩溃:storyboardWithName:

时间:2016-07-26 04:27:57

标签: ios uistoryboard

使用以下方法获取故事板实例:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"storyboardName" bundle:nil];

我已经注意到"如果不存在与故事板资源文件匹配的名称,则抛出一个带有描述的异常:找不到名为' XXXXXX'的故事板。捆绑...."。我知道处理这个方法不能太小心。

我的问题是有没有办法捕获异常并手动处理它。 任何指示?

2 个答案:

答案 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块,我们可以手动进行必要的处理。我刚刚记录了异常的描述。我们可以在该块中进行任何处理而不会导致代码崩溃