2017-04-08 124 views
0

我想在我的應用程序中存儲電話號碼列表。目前有53個,我希望存儲以下信息。iOS非持久性數據結構

  • Country
  • TollNumber
  • TollFreeNumber?
  • TollNumber2?
  • ISOCode

它不會非常頻繁地更新,並且將很可能由API手工完成,現在,也許在將來。持久存儲不是必需的。我通常只是將其插入到[[String]]陣列或者[[NSDictionary]],但我很想知道各種非持久解決方案的優缺點。

例如會有優勢/缺點,以XML或JSON格式保存在此,是持久的解決方案值得考慮的,儘管不需要持久性,並有斯威夫特的結構更適合處理靜態數據集?

+0

如果您不需要保存對象的更新,那麼爲什麼不直接在編譯時創建實例呢?提到持久性的目的是什麼? –

+0

@AhmadF我提到了缺乏持久性只能作爲有大量的蘋果的文檔有關的SQLite,CoreData,Plist檔案的優劣對SO以及問題等,我無法找到非持久性相同的信息選項。 – Deco

+0

如果你不需要保存任何數據,那麼我認爲你可以過度的瞭解它,所有你必須做的只是聲明你的變量並給他們想要的值。簡單地說:let myString =「Desired Value」。這不夠嗎? –

回答

1

如果你不感興趣,堅持對給定資料的編輯(CRUD),創建一個模型是你數據的表示(模板)將是一個很好的choise,例如:

// of course determining what's the data type of each property is up to you, 
// or even giving them an initial value... 
struct MyModel { 
    var country: String? 
    var tollNumber: String? 
    var TollFreeNumber: String? 
    var TollNumber2: String? 
    var ISOCode: String? 
} 


let containerArray = [MyModel(country: "country", tollNumber: "tollNumber", TollFreeNumber: "TollFreeNumber", TollNumber2: "TollNumber2", ISOCode: "ISOCode"), 
         MyModel(country: "country", tollNumber: "tollNumber", TollFreeNumber: "TollFreeNumber", TollNumber2: "TollNumber2", ISOCode: "ISOCode"), 
         MyModel(country: "country", tollNumber: "tollNumber", TollFreeNumber: "TollFreeNumber", TollNumber2: "TollNumber2", ISOCode: "ISOCode"), ...] 

如果您需要從文件中讀取給定的數據,我認爲.plist文件將是一個不錯的選擇,從終端用戶的角度來看很容易,但也請檢查Q&A

雖然直接從結構實例讀取數據在第一approach- - 如提到應該會更好(速度明智),用的.plist文件工作的好處可能是便於編輯的,所有你必須做是替換更新的文件,就是這樣!

備註:如果我們在談論少量數據,速度問題根本不值得注意。

另外:如果您正在尋找將數據保存到應用程序的機制,您可能需要檢查此Q&A

希望這有助於。

1

一個可能的和易於實現的解決方案是將數據轉換爲JSON並將其保存到文件系統。它將允許您稍後從API中獲取phoneNumbers並將其存儲在本地。

你也可以看着將它們存儲在.plist文件中並從中讀取。在我看來,CoreData或Realm對你的情況是一種矯枉過正。