2012-10-16 88 views
0

如果我有應用程序的本地數據,則假設我存儲遊戲所有得分的本地高分。 如果我發佈應用程序的更新,我會丟失所有數據。 我保存的數據使用這種方法:保存應用程序的數據,如果我更新應用程序,不會丟失應用程序

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *filename = [documentsDirectory stringByAppendingPathComponent:@"defaultStage.dat"]; 

char cstr[512]={0}; 
[filename getCString:cstr maxLength:512 encoding:NSASCIIStringEncoding]; 

defaultStage=1; 
FILE *pFile=fopen(cstr, "wb"); 
// and save with fprintf  

存在着保存數據的方式「永久」不失去的時候我重新安裝或更新應用程序?

回答

0

保存到文檔目錄不應該在更新時丟失數據,奇怪。它真的嗎?至於刪除和重新安裝應用程序,無法在手機上本地保存數據(即在應用程序的沙箱外部,刪除應用程序時會被刪除)。您需要使用iCloud或遠程Web服務器。

爲了節省高分我建議使用NSUserDefaults,在更新應用程序時也不會被刪除。

編輯:我猜你談論的iOS,而不是OS X

0

您可以在iOS/Mac OS X下保存數據。您可以先看看Core data,NSUserDefaultsNSFileManager。檢查您想要保存的數據量,並查看哪個數據符合您的需要。

+0

所以不是NSArray的*路徑= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);我可以使用:NSArray * paths = NSSearchPathForDirectoriesInDomains(NSUserDefaults,NSUserDomainMask,YES);? – sefiroths

相關問題