在大部分比较简单的程序里,资源的管理和使用都是无缝而且自动化的,你无需用程序去干预。
但是如果你的程序趋于成熟,可能在某些情况下你就需要用代码去直接访问资源。直接访问程序中资源的方式也非常直接,下面我们就来介绍一下方法。
神奇且自动
你在XCode项目中加入Resources目录中的任何文件都会自动添加到你的应用程序中。你可以通过以下步骤进行验证:
1 在XCode中编译程序。
2 选中刚刚编译好的.app文件,通常会在build/Debug或者build/Release目录中。
3 找到程序后,右键点击,选择“显示包内容。
4 打开Resources目录。
5 你会发现你添加到XCode项目中的所有文件都放在这个目录中。
那么现在问题来了,通过代码来最简单存取这些资源的方法是什么呢?很幸运,Cocoa让这件事情变得非常简单。
读取属性列表模板
我最近需要经常使用一个属性列表文件,做为模板来保存数据。你可能知道,NSDictionary提供了一种保存字典为属性列表的方法。那么既然我可以从模板中读取属性列表,在需要的情况下修改其中的一部分的话,我就没有理由必须用代码来从头建立一个字典。
既然想到了这种办法,我就在程序的Resources目录中保存了一个属性列表的模板。我只需要从程序的包中读出这个文件,事情就做完了。下面就是我用来读取属性列表的代码:
NSString *path = [[NSBundle mainBundle] pathForResource:@"OutputTemplate"ofType:@"plist"];
NSMutableDictionary *templateDictionary = [NSMutableDictionarydictionaryWithContentsOfFile:path];
NSLog(@"Dictionary was: %@", templateDictionary);
注意我们需要读取的文件名是OutputTemplate.plist.
这样一来我就可以修改NSMutableDictionary的键和值来满足我们的需求了。修改之后,可以用下面的代码直接写到文件中:
[templateDictionary writeToFile:outputPath atomically:YES];
结论
你可以用这种方法读取你喜欢的任何文件类型。只要把你想读取的文件加入到Resources目录即可。
标签: