core-data - 分配给@NSManaged public var locks UI
问题描述
我的 CoreData 模型上有一个 Int16 状态属性,该属性在@NSManaged public var state: Int16
生成的文件中定义。我通过枚举的 rawValue 分配给它,如下所示:
/// TaskSession.swift
public enum TaskStatus: Int16, CaseIterable {
case paused
case running
case complete
case suspended
}
public var status: TaskStatus {
get {
TaskStatus.init(rawValue: self.state) ?? .paused
}
set(newValue) {
state = newValue.rawValue
}
}
func finish() {
self.status = TaskSessionStatus.complete
}
///Tasks.swift
...
for session in taskSessionsArray where session.status != .complete {
session.finish()
}
...
我试过直接分配给 state 属性,但同样的事情发生了——分配给state
阻塞 UI 一百毫秒左右,随着任务集合的增加,情况变得更糟。
解决方案
提供的代码不可测试,但请尝试以下操作
func finish() {
DispatchQueue.main.async {
self.status = TaskSessionStatus.complete
}
}
推荐阅读
- list - 用 Haskell 中的列表表示集合论概念
- javascript - 将浏览器窗口大小存储在变量中并在更改时更新它
- python - 如何分隔嵌套列表的每个元素并将列表转换为元组列表?
- affdex-sdk - 使用 Affectiva 修剪视频以获得更好的效果?
- laravel - 如何在两个模型之间的关系中通过 phpunit 成功执行测试?
- c - 如何解决打开.exe文件闪烁的问题(程序结束后立即关闭)?
- powershell - 如何检查 SYSTEM 环境变量是否存在?
- r - 如何为各个方面的文本定义手动颜色?
- numpy - 水平组合两张图片(不同大小)?
- c# - 无法通过tcp远程连接