2010-11-14 56 views
1

我想更新我的「Secret.plist」中的整數值。 這裏* SA圖片:http://img214.imageshack.us/img214/8005/bildschirmfoto20101114u.png如何更新.plist中的Integervalue?

現在,在我的應用程序,我想黃金價值發生變化,這是我到目前爲止的代碼:

NSString *path = [[NSBundle mainBundle] pathForResource:@"Secret" ofType:@"plist"]; 
NSMutableDictionary *tempDict = [[NSMutableDictionary alloc] initWithContentsOfFile:path]; 

NSNumber *goldNumber = [NSNumber numberWithInt:1234]; 
[tempDict setObject:goldNumber forKey:@"Gold"]; 
[tempDict writeToFile:path atomically:YES]; 

我執行後,我的.plist沒更新應用程序,仍然有一個「5000」而不是「1234」。我究竟做錯了什麼?

編輯:我的.plist裏面的新值在我退出應用程序後沒有保存/更新。只要應用程序運行,值就會以某種方式更新。因此,當我在更新後檢索該值時,這是正確的。當我重新啓動我的應用程序時,它不再更新。 NSMutableDictionary * tempDict = [[NSMutableDictionary alloc] initWithContentsOfFile:path];

[tempDict setObject:@"A new String." forKey:@"key"]; 
    [tempDict writeToFile:path atomically:YES]; 

連這個都不適合我。有沒有人有簡單的代碼,將我的數據保存到我的.plist,以便我可以檢索它,當我重新啓動我的應用程序?

+0

還有更多的在這裏比代碼示例顯示。當我嘗試它時,示例在iPhone模擬器中運行時更新了存儲的plist。您正在使用哪個版本的iOS?你是在真實的設備上還是在模擬器上運行它?你會發布[更完整的示例](http://sscce.org/)嗎? – outis 2010-11-14 14:37:39

回答

0

這是Secret.plist是否位於應用程序包中?如果你想編輯一個文件,你應該將它複製到應用程序包之外。有標準的目錄,你可以放東西。

NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDir = [documentPaths objectAtIndex:0]; 

documentsDir是一個地方,你可以把它。

除了代碼看起來不錯。

+0

它位於我的資源文件夾中。我應該在哪裏複製它?如果我將它放在我的資源文件夾中,它不起作用嗎? – KayO 2010-11-14 13:19:53

+0

您的資源文件夾(或其內容)將在您的應用程序包目錄中結束。更改你的應用包內的東西會弄亂代碼簽名。相反,首次啓動時,將Secret.plist複製到我上面指定的documentsDir,然後嘗試修改該文件。 – 2010-11-14 13:29:51

+0

我不知道你的意思。我在其他代碼片段的頂部添加了上面的代碼行,但這不可能是正確的。 NSArray * documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); \t \t NSString * documentsDir = [documentPaths objectAtIndex:0]; \t \t \t \t NSMutableDictionary * tempDict = [[NSMutableDictionary alloc] initWithContentsOfFile:documentsDir]; \t \t \t \t NSNumber * goldNumber = [NSNumber numberWithInt:1234]; \t \t [tempDict setObject:goldNumber forKey:@「Gold」]; \t \t [tempDict writeToFile:documentsDir atomically:YES]; – KayO 2010-11-14 13:39:51