2014-09-29 20 views
0

我正在開發一個ios遊戲,我想知道如果在plist中保存是否安全? 我有一些問題,我真的不知道如果用戶在保存發生什麼時候退出應用程序的例子的答案嗎?保存在plist中真的很安全嗎?

我發現plist非常有用和易於使用我存儲例如很多關於用戶界面的座標和信息,但在這些文件上我只能讀取信息。 而在其他plist中,我存儲了一些數據,比如高分,靜態,需要刷新的點數以及每次遊戲結束後或用戶購買新店配件時每次都保存新值。

如何處理例如由於保存不良而導致損壞的文件。我可以在新的plist上覆制每一個奇怪的遊戲,並有一個可以重新加載但沒有丟失的文件,但它似乎是一個糟糕的解決方案和愚蠢的,但我不想創建一個應用程序,用戶可以丟失所有數據因爲保存失敗並從開始遊戲開始。

我讀了一些像這樣的鏈接(Saving game score locally on iOS device...is security needed?),但我更喜歡保留plist文件比使用NSUserDefaults,因爲我有很多數據要保存。

我想到了一個解決方案,用戶可以在plist的雲上存儲一份副本,如 他刪除了應用程序,可以訪問其偏好,或者如果保存失敗以自動檢索有效文件,但似乎奇怪,我從來沒有在那種東西上工作。

我讀了更多的帖子,我真的需要在這裏的建議,並希望我不重複一個問題。

回答

0

快速,簡單和可靠的解決方案是使用PARSE庫。我會使用Parse Core框架。這會爲你節省很多頭痛。 https://parse.com/products/core#howitworks

代碼示例:

// Create a new Parse object 
PFObject *post = [PFObject objectWithClassName:@"Post"]; 
[post setObject:@"Hello World" forKey:@"title"]; 

// Save it to Parse 
[post saveInBackground]; 

他們甚至有一個選項,最終節省你在哪裏,不知道WIFI/3G連接的

// Create the object. 
PFObject *gameScore = [PFObject objectWithClassName:@"GameScore"]; 
gameScore[@"score"] = @1337; 
gameScore[@"playerName"] = @"Sean Plott"; 
gameScore[@"cheatMode"] = @NO; 
[gameScore saveEventually]; 
+0

謝謝您的回答,我不案例知道解析庫之前,但這種解決方案可能是好的,我會搜索更多,因爲我真的不知道它是如何與蘋果集成如何在應用程序更新時例如,當您需要將用戶的偏好轉移到新的應用程序 – Aaleks 2014-09-29 23:47:56

+0

解析庫與iOS很好地集成。該圖書館由Facebook支持,因爲他們在一年前(或更多)購買了它。請讓我們知道你是否設法做到這一點。 – archipestre 2014-09-30 22:44:04

+0

我讀過關於雲工具包也許它是一個最佳的解決方案?它似乎很容易使用 – Aaleks 2014-10-01 10:58:43