【发布时间】:2016-03-22 05:48:47
【问题描述】:
我有一个模态实体文件,如下所示,
import UIKit
class MyProfile: NSObject {
var userName : String = ""
func initWithDict(dict: NSMutableDictionary) {
self.userName = dict.objectForKey("username") as! String
}
}
通过如下编码保存该实体,
let myDict: NSMutableDictionary = ["username": "abc"]
let myEntity:MyProfile = MyProfile()
myEntity.initWithDict(myDict)
let userDefaults = NSUserDefaults.standardUserDefaults()
let encodedData = NSKeyedArchiver.archivedDataWithRootObject(myEntity)
userDefaults.setObject(encodedData, forKey: "MyProfileEntity")
userDefaults.synchronize()
获取保存的实体如下,
let myEntity:MyProfile = MyProfile()
let userDefaults = NSUserDefaults.standardUserDefaults()
guard let decodedNSData = userDefaults.objectForKey("MyProfileEntity") as? NSData,
myEntity = NSKeyedUnarchiver.unarchiveObjectWithData(decodedNSData) as? MyProfile!
else {
print("Failed")
return
}
print(myEntity.userName)
它不工作,有崩溃和很多语法错误,我是 swift 新手,
它在unarchiveObjectWithData 行中显示了一些语法错误,例如定义与以前的值冲突。如果我修复了该错误,那么在从 userdefaults 获取实体时它会崩溃。
谁能建议我如何解决它?
【问题讨论】:
-
你遇到了什么错误?
-
@ryantxr,它显示了一些语法错误,例如定义与以前的值冲突.....
-
如果您需要帮助,您需要具体说明。使用完整和准确的错误消息更新您的问题,并指出导致错误的确切行。
-
@rmaddy,编辑了问题。
标签: ios swift nsuserdefaults nsobject nskeyedarchiver