[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 infoDictionary 返回 NULL
“[[NSBundle mainBundle] objectForInfoDictionaryKey:]” 有时返回 nil
“[[NSBundle mainBundle] objectForInfoDictionaryKey:]” 有时返回 nil