我一直在阅读有关 KVC 和 Cocoa Scripting 的内容,以及如何为此使用属性。我有一个模型类,但元素/属性数据必须从 Internet 获得。但是属性和 KVC 的设计看起来像是假设快速和内存检索,而网络调用可能很慢和/或容易出错。这些如何调和?
为了速度,我们只是说“去他妈的”并发布一个等待图标吗?(当然,我们应该保持多线程,这样 UI 在我们等待时不会停止。)
如果您的属性应该始终可用,我们可以将其设置为nil
资源调用出错时。但是我们没有办法得到细节。更糟糕的是支持“缺失值”的属性,然后nil
将表示它,我们将没有备用状态用于错误。
尽管 Apple 事件支持错误处理,但我无法使用它,因为在我可能会产生错误的模型调用和 Apple 事件之间,KVC 层会将错误放到地板上(被遗忘)。Scripting Bridge API 发现了这个问题,因为它的设计者添加了一个秘密协议来处理错误。
我错了吗?有没有办法处理基于 KVC 的设计的错误?
附录
我忘了提到例外。Objective-C 现在支持它们,但我读到的关于它们的信息很少暗示它们是用于灾难性的“而不是直接崩溃”的,而不是用于像 C++ 中那样的常规错误处理。除此之外,它们可能在这里有用......