iPhone SDK:如何正确处理NSBundle资源加载错误?

时间:2010-08-13 18:15:52

标签: iphone

我正在使用NSBundle资源来加载某些媒体:

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:someValue ofType@"someType"]];

如果找不到资源,url值当然仍然有效,使用它会导致应用程序崩溃,所以简单检查

if(!url) { //or even (!mediaPlayer), or (url == nil)
    //show alert box
}

无济于事。

1 个答案:

答案 0 :(得分:0)

正确的方法是将pathForResource:ofType:的结果与nil进行比较,并在此时处理错误。

NSString *pathString = [[NSBundle mainBundle] pathforResource:@"name" ofType:@"ext"];
if (!pathString) {
   // Handle error
}

NSURL *theURL = [NSURL fileURLWithPath:pathString];