我想在我的应用中存储电话号码列表。目前有53个,我希望存储以下信息。
[a]
Country
TollNumber
TollFreeNumber?
TollNumber2?
它不会经常更新,现在可能会手动完成,可能会在将来通过API完成。不需要持久存储。我通常只是将其插入ISOCode
数组或[[String]]
,但我很想知道各种非持久性解决方案的优缺点是什么那里。
例如,将这些存储在XML或JSON格式中会有优势/缺点吗,尽管不需要持久性,是否有值得考虑的持久解决方案,是否有更适合处理静态数据集的Swift结构?
答案 0 :(得分:1)
一种可行且易于实施的解决方案是将您的数据转换为JSON并将其保存到文件系统。它允许您稍后从API获取phoneNumbers并将其存储在本地。
您还可以查看将它们存储在.plist文件中并从中读取。在我看来,CoreData或Realm对你的情况来说太过分了。
答案 1 :(得分:1)
如果您对保留给定信息的编辑(CRUD)不感兴趣,那么创建一个模型作为数据的表示(模板)将是一个很好的选择,例如:
// 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。
尽管直接从结构实例中读取数据(如第一种方法中所述)应该更好(速度更快),但使用.plist文件的好处可能是编辑的简易性,你所要做的就是更换更新后的文件!'
备注:如果我们谈论的是少量数据,那么速度问题就不会引人注目 - 几乎没有。
另外:如果您正在寻找一种机制来将数据保存到您的应用程序中,您可能需要查看Q&A。
希望这会有所帮助。