电脑技术学习

Cocoa教学:使用应用程序资源

dn001

  在大部分比较简单的程序里,资源的管理和使用都是无缝而且自动化的,你无需用程序去干预。

  但是如果你的程序趋于成熟,可能在某些情况下你就需要用代码去直接访问资源。直接访问程序中资源的方式也非常直接,下面我们就来介绍一下方法。

  神奇且自动

  你在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目录即可。

标签: