我正在尝试使用Operation将数据保存到plist文件。
我想实现异步保存,所以我覆盖了start()
但是当我尝试检查时,保存完成isFinished
仍然是假的。
但是,按照我的计划,数据已成功保存
class OperationDataManager: Operation {
var user: AppUser?
override func start() {
if let plist = Plist(name: "userFile") {
if let dict = plist.getMutablePlistFile() {
dict["userName"] = user?.userName
dict["userInfo"] = user?.userDescription
dict["userColor"] = NSKeyedArchiver.archivedData(withRootObject: user?.userColor)
dict["userImage"] = UIImagePNGRepresentation((user?.userImage)!)
do {
try plist.addValuesToPlistFile(dictionary: dict)
} catch {
print(error)
}
}
}
if isFinished == true {
print("Operation: finished")
} else {
print("Operation: not finished")
}
}
}
怎么了?
答案 0 :(得分:0)
isFinished
完成之后,true
未设置为main
。在true
或start
内不会main
。isFinished
。它在main
结束时结束。