回答
您可以創建一個屬性列表文件(有針對Xcode的模板,只是到文件 - >新文件,並選擇那裏),所以你會有像「settings.plist」,或類似的東西。你可以將plist想象成一個key =>值配置文件,不同之處在於除了純文本之外,你還可以保存數組和字典。
使用一個NSBundle將文件加載在你的應用程序,像
NSString *path = [[NSBundle mainBundle] pathForResource:@"settings" ofType:@"plist"];
NSDictionary *settings = [[NSDictionary alloc] initWithContentsOfFile:path];
然後,您可以訪問你的鑰匙作爲一個普通的字典。只是不要忘了在[release]之後;)。
在iOs中,每個應用都有自己的沙箱,只有該應用纔可用。所以如果你想讓這個文件只讀取,請將它保存到Application Bundle中。否則保存到Application文件夾。
你無法直接訪問應用程序文件夾所以,如果你想保存你的文件到該文件夾,你必須以編程方式進行。 -
我用用於存儲小塊數據的屬性列表關於如何使用他們在這裏看看:
http://iphoneincubator.com/blog/tag/nspropertylistserialization
如果你只是存儲相對簡單的一套配置的東西,你可以簡單地使用NSDictionary的序列化方法(我不知道如何在類文檔鏈接到方法目錄):
NSString *settingsPath = [@"~/pathtoconfig.plist" stringByExpandingTildeInPath];
NSMutableDictionary *settings = [NSMutableDictionary dictionary];
if([[NSFileManager defaultManager] fileExistsAtPath:settingsPath]){
settings = [NSMutableDictionary dictionaryWithContentsOfFile:settingsPath];
}
// writing settings
[settings writeToFile:settingsPath atomically:YES];
因爲我不知道如何熟悉你是與客觀C,我還要注意:
- 在iOS中,主目錄是指application's sandboxed directory。
- 我建議讀一點參考計數。雖然Objective-C中,作爲iOS5的,目前automatically reference counts對你來說,有一些邊緣的情況下要注意有關(Here's a SO question on ARC)
iOS 5自動引用計數,並在Xcode中默認啓用。 –
的確,我忘記了這一點,儘管它並不完美。 IIRC,你將不得不遵循編碼標準,處理循環依賴依然存在。 – Jeff
對於像連接字符串這樣的小數據,我會用NSUserDefaults。
當要保存您的連接字符串,你可以這樣做:當你想加載它
[[NSUserDefaults standardUserDefaults] setObject:myConnectionString
forKey:@"connectionString"];
,你可以這樣做:
myConnectionString = [[NSUserDefaults standardUserDefaults]
stringForKey:@"connectionString"];
隨着NSUserDefaults,我第一次寫入文件,我需要運行該應用程序。我的目標是有一個文件,我可以在常規編輯器上編輯內容,而無需運行應用程序(可能我想這樣做是因爲我習慣了windows上的app.config)。不管怎麼說,還是要謝謝你... – Freedom
的iOS應用程序配置文件在Swift與iOS 8。3:
let path: String = NSBundle.mainBundle().pathForResource("Info", ofType: "plist")!
let nsDictionaryInfoPlist: NSDictionary = NSDictionary(contentsOfFile: path)!
// Usage example: Google Maps iOS SDK/API Configuration.
GMSServices.provideAPIKey(nsDictionaryInfoPlist.objectForKey("GoogleMapsiOSAPIKey") as! String)
我意識到我遲到了,但要找到這個堆棧溢出我是在接受的答案心灰意冷之後,所以我created a pod解決吧!這是基於@ RafaelSteil的answer的想法,但它具有更簡單的接口,緩存加載的配置數據,並且它支持提供它們自己的默認值的主機,它們可以被主應用覆蓋。我希望它能幫助別人。
更新了斯威夫特3 Xcode的8
添加一個新的屬性列表到您的項目名爲 「Sample.plist」。然後看下面的例子。
let path: String = Bundle.main.path(forResource: "Sample", ofType: "plist")!
let sampleConf: NSDictionary = NSDictionary(contentsOfFile: path)!
print(sampleConf.object(forKey: "test") as! String)
- 1. Xamarin iOS應用程序配置文件
- 2. 讓iOS設置配置文件應用程序過期
- 3. ios應用程序的供應配置文件
- 4. iOS應用程序中的用戶配置文件?
- 5. iOS應用程序崩潰使用adhoc分佈配置文件
- 6. 使用過時的配置配置文件備份iOS應用程序
- 7. 不同配置文件下的一個iOS應用程序
- 8. (ios + phone gap) - 配置文件的最終應用程序
- 9. 證書,配置文件等我的新iOS應用程序
- 10. 如何爲現有應用程序iOS創建配置文件?
- 11. 爲iPhone構建基於配置文件的IOS應用程序
- 12. iOS應用程序檢查重複的配置文件
- 13. 配置文件中的IOS應用程序Id類型
- 14. android應用程序配置文件
- 15. AngularJS應用程序配置文件
- 16. 應用程序配置文件
- 17. iPhone應用程序配置文件
- 18. GWT應用程序配置文件
- 19. 應用程序配置文件
- 20. web2py應用程序配置文件
- 21. 應用程序配置文件形成
- 22. Flask應用程序的配置文件
- 23. 應用程序配置文件清理
- 24. 應用程序文件缺失配置
- 25. PhoneGap iOS應用程序配置菜單
- 26. MIX應用程序的配置文件爲OTP應用程序
- 27. 無法應用iOS MDM配置文件
- 28. 爲多個應用程序配置一個配置文件
- 29. 供應配置文件和應用程序名稱不匹配
- 30. 在iOS應用程序中設置配置文件的最佳方法
如果fr33d0m是新的,他可能使用iOS 5,默認使用ARC(自動引用計數),如果是這樣的話,不要發佈任何東西。 –
是的,我會用iOS 5.謝謝。 – Freedom
是的,謝謝你記住ARC,Sergio。 –