![]() |
1
1
是的,如果您修改了cocoa绑定所观察到的对象,那么您应该只在主线程上修改,gcd将修改发送到主线程是一个很好的方法。 是的,你的应用程序可能大部分时间都运行良好,但这可能是基于运气的,实际上并不正确。问题是cocoa绑定基于键值观察,kvo通知发布在导致变异的线程上。 这也是一个复杂的问题。只要你的应用程序相对简单快速,两个线程互相冲突的可能性就小得多。想象一下当你的应用程序变得更加复杂和计算密集…一个问题出现了…但到目前为止,您可能有数百个地方可以从多个线程修改绑定属性。从长远来看,只要遵守规则,就可以省去你的悲伤。使用主线程更新绑定到对象,并尝试将绑定属性保持为不可变的值语义类型。 |
![]() |
otakon · AppleScriptObjC中每个表格行的删除按钮 8 年前 |
![]() |
Duncan C · 如何对Swift结构使用Cocoa绑定 10 年前 |
![]() |
RogerWilco77 · 通过表视图在核心数据实体中计算 11 年前 |
![]() |
Colas ma11hew28 · 将菜单项绑定到第一响应程序的属性 12 年前 |
![]() |
utahwithak · 具有核心数据的Cocoa绑定未更新所有列 12 年前 |