2017-08-02 59 views
0

在我的UserDefaults我需要存储用户保存的“收藏夹”。每个最爱包含一个名称和一个电话号码。Swift UserDefault - 存储大对象?

稍后运行联系人列表需要检查每个联系人是否已经收到联系人。

无论如何,看着存储一个对象在UserDefaults它似乎是一个大麻烦?我想要更简单的事情。如何做到这一点的任何投入?

我在想也许把它存储为长字符串逗号和下划线分开。像“Name_Phone,Name2_Phone2

然后将其拆分成一个数组,稍后用逗号和下划线进行访问。

虽然,我担心有些名字可能有逗号或下划线。

这样做的好方法是什么?

+0

也许Dictionnary?类似于'let favorite:[String:String] = favorites [“Fav1”] =“Name_Phone”' – pierreafranck

回答

4

NSUserDefaults适用于小数据和属性。然而,对于像这样的大数据,最好的方法是使用本地设计的核心数据,以满足您的需求。

我建议你使用这个库是建立在核心数据:https://github.com/JohnEstropia/CoreStore

+1

'UserDefault'和__CoreData__之间有这样的工作选项,比如'.plists'怎么样? – holex

+0

.plists也是一个答案!不过,我倾向于使用核心数据,因为它更加灵活和动态。 –

+0

不要误解我的意思,我不会反驳CoreData,但是每个任务都需要这些残酷的资源来存储'String'对象列表;即使从开发者的角度来看,更好的事情并不意味着从实际项目的架构角度来看它更好:) – holex