簡體   English   中英

在iOS應用上保存數據的最有效方法

[英]Most efficient way to save data on iOS Apps

我正在創建一個包含多個UITableViewControllers的應用程序。 到目前為止,我已經使它們全部連接到我的不同JSONGetStuff.php文件,然后使用JSON編碼從數據庫中獲取數據。 這很好。 大多數表都有包含文本和圖像的單元格。 現在,我有四個包含不同數據的tableViews,我想保存數據而不是每次都加載它。 現在,我讓該應用訪問ViewDidLoad上的JSON.php文件,並將數據存儲在NSArray中,然后通過NSDictionary對其進行解析以獲取ObjectForKey:@“”; 此數據是來自SQL Server的普通表,例如“名稱”,“地址”,“圖像名稱”等。

我意識到我不會太頻繁地更新數據庫,很可能每月更新一次或兩次,甚至更少。 因此,我決定將信息存儲在安裝的應用程序中。 並不是每次更改數據庫時我都必須發布更新,而是喜歡保存直到更新。

我認為我的應用程序中應該有一個名為“ Version”的整數,即= 1; 發布時。 然后,在啟動應用程序時,我要使該應用程序轉到www.mywebsite.com/version.php,並檢查回顯的變量是否與“ Version”相同。 每當我更改數據庫時,都可以更改此整數++。 當應用啟動並檢查版本,並且本地錯誤時,我希望它下載全部負載,並覆蓋存儲在iPhone上的當前數據。

我不知道從哪里開始。 我使用JSON是因為直接連接到數據庫很不好,但是由於我的數據是數據庫數據,我可以創建本地數據庫並使用該信息而不是數組嗎? 我在某個地方讀到.plist可能更適合字符串,而我的整個數據庫只是字符串(varchar x)。

我應該在哪里保存初始數據? 如何使用JSON解析我的數據庫數據? 時間到了,我該如何覆蓋這些數據? 從哪里開始呢? 我應該閱讀.plist,NSData,NSCoding還是NSFileManager嗎?

嘗試考慮將數據持久化在核心數據數據庫中。 核心數據是處理數據庫的持久框架。 核心數據可以為您處理很多事情(關系,內存等),並且可以很好地與表配合使用(使用NSFetchedResultsController)。

http://developer.apple.com/library/mac/#documentation/cocoa/Conceptual/CoreData/cdProgrammingGuide.html

當然,這完全取決於數據量,但是您可以開始查看鏈接的文檔。

如果數據很簡單,則可以使用NSCacheNSUserDefaults快速有效地存儲數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM