2009-04-25 55 views
2

在我的應用程序中,我有一個簡單的ASCII文件,它存儲了一些配置信息和其他使用和更改的小信息。我想用該應用程序將該文件複製到iPhone。iPhone應用程序:我在哪裏放置一個配置文件?

1)請告訴我,我應該把這個文件(config.txt)放在xcode中。我應該把它放在資源下嗎?

2)我如何在iPhone上訪問它?我可以只使用

str = [NSString stringWithContentsOfFile:@"config.txt"] 

還是必須使用更完整的路徑;如果是,那是什麼?

回答

9

如果應用程序可以更改它們,您應該使用NSUserDefaults來存儲用戶設置。 該文檔是here

的設置保存爲一個plist文件,這樣你就可以存儲NSDictionary情況下,NSArray實例等

如果你想預填充NSUserDefaults一些設置,你可以用一些代碼像這樣做這一個:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"defaults" ofType:@"plist"]; 
NSDictionary *defaultsDict = [NSDictionary dictionaryWithContentsOfFile:filePath]; 
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsDict]; 

你需要把你的資源文件夾中的文件defaults.plist使用默認設置,並使用上面的代碼。我從AppDelegate的+(void)initialize方法運行該代碼,但您可以選擇另一個地方來調用它。

+0

我想存儲要由用戶挑選一些默認選項。他可以在使用應用程序時添加更多選項。例如對於觀鳥應用程序,最初的選項可能是「鴿子」,「麻雀」等。用戶可以添加像「鷹」的其他人。該列表可能會變大(100個條目說)。 NSUserDefaults仍然是一個不錯的選擇? – euphoria83 2009-04-25 18:08:45

1

你可以把它放在資源中,是的。要獲取的文件,然後,你可以簡單地使用:

[[NSBundle mainBundle] pathForResource:@"config" ofType:@"txt" inDirectory:@""]] 

我建議NSUserDefaults爲您的設置,但是?它將爲您節省閱讀和寫作方面的麻煩。

0

如果nsuserdefaults不符合您的需要,您可以將配置信息存儲在Documents目錄中的文件中。如果該文件在啓動時不存在,請閱讀參考資料中的版本。

1

如果你想檢索NSUserDefaults的,你可以做到以下幾點:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 

// getting a NSString 
NSString *myString = [prefs stringForKey:@"keyToLookupString"]; 

// getting a NSInteger 
NSInteger myInt = [prefs integerForKey:@"integerKey"]; 

// getting a Float 
float myFloat = [prefs floatForKey:@"floatKey"]; 
相關問題