網頁

顯示具有 系統架構 標籤的文章。 顯示所有文章
顯示具有 系統架構 標籤的文章。 顯示所有文章

2012年6月6日 星期三

ios資料儲存結構

參考資料:

先前介紹過sqlite的使用方式
這次來介紹儲存在手機端ios的目錄結構
如下圖:
ios儲存資料的方式很多種,可以利用.plist或者直接儲存純文字檔,通常數量很龐大的,就用sqlite會比較恰當。

不過當然你可以在你的程式碼中,自己建立新的folder並放置於documents的路徑,像是我為了sqlite資料庫的版本控制,寫了一個plist放在自己建立的folder中,每次打開app就會去比對手機中資料庫版本和目前安裝的版本是否相同。

在這邊稍微解釋一下,通常我們把sqlite資料庫放入app中,並由使用者安裝,安裝過程中,app會必須拷貝一份資料庫,到你手機中app的資源庫中,所以假如你在程式中,沒有加入資料庫是否相同,則每次開啓app,就會把預設的資料庫重新放入你的手機app資源庫中。

舉個例子:
當你製作一份通訊錄,輸入資料後,重新打開app,若無判斷,則app又會把相同名稱的資料庫重新安裝到你的手機中。

我自己除了路徑判斷外,還加上版本控管的功能,這樣以後資料庫可以獨自線上更新,不用透過app store整個更新。或者進階還可以背景更新。

目錄的操作方式請參考:NSFileManager

sqlite於ios程式碼的操作,不錯的網站

SQLite Tutorial


額外補充:

SQL查詢慢的48個原因分析



2012年5月7日 星期一

任何一個功能或者系統


或許應該達到以下的幾個規範,或者對於整個MVC系統的維護,架構,擴編均有很大的幫助
  • 動態實例化(dynamic instantiation):
  •  在系統中,元件只有在請求時才會載入並執行,而不是放在global等待使用。除了最小的核心,系統對於所需要的資源不做任何假設。所以預設的系統是非常輕量化的。由HTTP請求所觸發的事件,以及你所設計的控制器(controller)及檢視(view)會決定要執行什麼。
  • 鬆散耦合(loose coupling):
  •  耦合是系統中元件互相依賴的程度。越少相互依賴的元件,系統的重用以及彈性會越好。
  • 元件單一性(component singularity):
  •  單一性是元件有狹隘的用途的程度。系統架構中,每個類別以及它的功能是高度自主的,以便達到最大的效用。