我已经阅读了一些Objective C和Cocoa的内容,虽然我对Objective-C的整体简单性感到非常兴奋,但是在Cocoa和特别是MVC设计模式方面,我感到完全迷失了。我读过的Cocoa书籍只要求读者完成一组程序步骤,没有对API机制进行太多的解释。我正在尝试理解NSTableView、NSOutlineView及其数据源、代理和这些与各种控制器类(如NSArrayController和NSTreeController)有什么关系的整体含义。所以我有几个问题要问:
- 这些类是如何相互操作的?
- NSTableView的数据源是否是NSArrayController的实例?
- 在NSTableView或NSOutlineView中,委托和数据源应该是同一个类吗?
- 除了绑定之外,NSArrayController和NSTreeController还有其他重要优点吗?
假设有一个包含某种数据(C结构)的容器(在C中)。我们想要能够在NSTableView(或NSOutlineView)中显示这些数据,并在运行时交换视图,如果数据结构是分层的。我应该创建一个具有NSArrayController(或NSTreeController)实例的类,并包装C容器的功能吗?
谢谢你,原谅我的愚蠢问题。