我正在尝试使用操作将数据保存到 plist 文件。
我想实现异步保存,所以我重写了 start()
但是,当我尝试检查保存是否已完成时,isFinished
仍然为 false。
但是数据已成功保存,正如我计划的那样
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")
}
}
}
出了什么问题?
最佳答案
isFinished
在main
完成之前不会设置为true
。在start
或main
中它永远不会是true
。- 您的操作无需检查
isFinished
。当main
到达末尾时,它就完成了。
关于ios - 操作 isFinished 始终为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43564915/