2017-04-08 118 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对你的情况是一种矫枉过正。