Cocoa教學:使用應用程序資源

在大部分比較簡單的程序里,資源的管理和使用都是無縫而且自動化的,你無需用程序去干預 。
但是如果你的程序趨于成熟,可能在某些情況下你就需要用代碼去直接訪問資源 。直接訪問程序中資源的方式也非常直接,下面我們就來介紹一下方法 。
神奇且自動
你在XCode項目中加入Resources目錄中的任何文件都會自動添加到你的應用程序中 。你可以通過以下步驟進行驗證:
1 在XCode中編譯程序 。
2 選中剛剛編譯好的.app文件,通常會在build/Debug或者build/Release目錄中 。
3 找到程序后,右鍵點擊,選擇“顯示包內容 。
【Cocoa教學:使用應用程序資源】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目錄即可 。

    推薦閱讀