我有一个超级简单的应用程序想法,我正在构建以获得更多使用Swift的实践。我只是想问一下,使用NSUserDefaults是否是最合适的选择。我将拥有的是名单列表,其中包含与我将不时更新的每个名称相关的编号(编号)。我打算使用NSDictionary来获取数据。
我认为核心数据已经过度杀戮了。
我只是想就如何保存这个简单应用程序的数据提出第二意见。
由于
答案 0 :(得分:1)
您可以使用NSUserDefault。但是如果想要存储数组或字典,你必须做一些额外的工作。 The documentation says:
value参数只能是属性列表对象:NSData,NSString,NSNumber,NSDate,NSArray或NSDictionary。对于NSArray和NSDictionary对象,它们的内容必须是属性列表对象。
您可以将NSDictionary
转换为NSData
,然后将其保存到NSUserDefault
。
// Convert the dictionary and store
var data = NSKeyedArchiver.archivedDataWithRootObject(yourDict)
NSUserDefaults.standardUserDefaults().setObject(data, forKey: yourKey)
// Retrieving the dictionary
var savedData = NSUserDefaults.standardUserDefaults().dataForKey(yourKey)
var dict = NSKeyedUnarchiver.unarchiveObjectWithData(savedData)
希望这会有所帮助.. :)
答案 1 :(得分:0)
如果它只是一个NSDictionary应该没问题。 NSUserDefaults适用于那样的小事。
NSUserDefaults.standardUserDefaults().setObject(**YOUR DICTIONARY**, forKey: **YOUR KEY**)