“[[NSBundle mainBundle] objectForInfoDictionaryKey:]” 有时返回 nil
Posted
技术标签:
【中文标题】“[[NSBundle mainBundle] objectForInfoDictionaryKey:]” 有时返回 nil【英文标题】:"[[NSBundle mainBundle] objectForInfoDictionaryKey:]" sometimes returns nil 【发布时间】:2014-05-12 03:08:52 【问题描述】:我正在尝试从infoDictionary
中检索一些URLs
。 10 次中有 9 次正确返回 URLs
。但是,URLs
偶尔会返回 nil。知道是什么导致了这种行为吗?
[NSBundle mainBundle]
和 [[NSBundle mainBundle] infoDictionary]
在发生这种奇怪行为时都不为零。只有 URLs
返回 nil。
【问题讨论】:
NSLog(@"infoDictionary: %@", [[NSBundle mainBundle] infoDictionary]);
看看那里有什么。但是您并没有尝试保存到应用程序包中,是吗,这在 ios 中是不可能的。
@Zaph 我没有编写这段代码,所以我试图弄清楚这些 URL 是如何存储在 infoDictionary 中的。当我 NSLog infoDictionary 时,我看不到 URL 的键。无论 URL 是否正确返回,URL 键都不存在。
【参考方案1】:
在 iOS 中,无法写入应用程序包,因此尝试这样做会失败。通常,数据被写入和读取应用程序文档目录中的文件,可以通过以下方式获取:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths firstObject];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:myFileName];
【讨论】:
以上是关于“[[NSBundle mainBundle] objectForInfoDictionaryKey:]” 有时返回 nil的主要内容,如果未能解决你的问题,请参考以下文章