【发布时间】:2017-05-23 11:55:44
【问题描述】:
我有一个非常基本的类,其中包含一个包含标题(字符串)和颜色(UIColor)的仪表板项目。
这些值通过以下方法进行编码/解码:
required init(coder aDecoder: NSCoder) {
self.title = aDecoder.decodeObjectForKey("title") as! String
self.color = aDecoder.decodeObjectForKey("color") as! UIColor
}
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeObject(self.title, forKey: "title")
aCoder.encodeObject(self.color, forKey: "color")
}
...并通过以下函数访问/持久化:
NSKeyedUnarchiver.unarchiveObjectWithData(data) as! [DashboardItem]
NSUserDefaults.standardUserDefaults().setObject(NSKeyedArchiver.archivedDataWithRootObject(self.dashboardItems), forKey: DASHBOARD_SCREENS)
旁白:这个想法是用户可以创建一个自定义仪表板,允许他们编辑仪表板项目的标题、颜色和各种其他值。
我创建了一个UserDefaults.plist 文件,其中将包含应用程序的默认值,但我不确定如何为 UIColor 设置默认值?
除此之外,我不完全确定我的 plist 结构是否正确。我假设用户默认值的结构应该包含默认值的字典(根),其中 DASHBOARD_SCREENS 是 DashboardItem 的数组,这应该是字典吗?
提前致谢
编辑:
斯威夫特v2.2
XCodev7.3.1
【问题讨论】:
-
stackoverflow.com/questions/1748350/… 在这个答案中你可以看到,颜色可以转换成一些字符串。你可以这样做
-
链接问题的答案不适合这种情况。
标签: ios swift nsuserdefaults uicolor