[NSBundle mainBundle] URLForResource:withExtension: 在 iOS 3 SDK 中的替代方法是啥

Posted

技术标签:

【中文标题】[NSBundle mainBundle] URLForResource:withExtension: 在 iOS 3 SDK 中的替代方法是啥【英文标题】:What is the alternative of [NSBundle mainBundle] URLForResource:withExtension: in iOS 3 SDK[NSBundle mainBundle] URLForResource:withExtension: 在 iOS 3 SDK 中的替代方法是什么 【发布时间】:2011-02-24 15:04:51 【问题描述】:

我正在使用 ios 4.2 SDK 开发 iOS 应用程序,但我希望该应用程序能够在旧设备上运行,例如我的 iPhone 2G 和 iOS 3.1.3。我不知道这段代码的替代方法是什么:

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"CoreDataApp" withExtension:@"momd"];

它在我的设备上崩溃,因为 URLForResource:withExtension: 方法是 iOS 4+。

请帮忙。谢谢。

【问题讨论】:

【参考方案1】:

您可以使用 pathForResource:ofType: 方法获取资源的路径,然后使用 NSURL 中的 +fileURLWithPath: 方法将该路径转换为 ​​URL - 从 SDK 2.0 开始,这两个 API 都可用。

NSString *path = [[NSBundle mainBundle] pathForResource:@"CoreDataApp" ofType:@"momd"];
NSURL *modelURL = [NSURL fileURLWithPath:path];

【讨论】:

【参考方案2】:

它 -

NSURL *aFileURL = [NSURL fileURLWithPath: [[NSBundle mainBundle]  pathForResource:path ofType:@"aif"]];

【讨论】:

以上是关于[NSBundle mainBundle] URLForResource:withExtension: 在 iOS 3 SDK 中的替代方法是啥的主要内容,如果未能解决你的问题,请参考以下文章

`NSBundle.mainBundle().URLForResource` 总是返回 `nil`

未找到 NSBundle mainBundle

NSBundle mainBundle 返回 nil

NSBundle mainBundle infoDictionary 返回 NULL

“[[NSBundle mainBundle] objectForInfoDictionaryKey:]” 有时返回 nil

“[[NSBundle mainBundle] objectForInfoDictionaryKey:]” 有时返回 nil