8

我有一个NSViewController管理 aNSTableView并注意到它NSViewController有一个representedObject属性,但是它不是 IBOutlet 并且我无法将dataSourceof绑定到界面生成器NSTableViewrepresentedObject属性。NSViewController应该如何使用代表对象属性?有正确使用的例子吗?

4

2 回答 2

4

representedObject属性应设置为位于 nib 之外的对象,例如文档、另一个模型控制器或模型对象。nib 中的东西应该从 VC 或 VC 中获取数据representedObject

于 2011-12-27T00:49:25.140 回答
1

我知道这是一个老话题,但我想我会添加它,因为我对代表对象进行了相当多的研究。希望这可以帮助!

representedObject是对视图应该表示的某些AnyObject( ) 的引用。NSObject

它不是对象的副本,而是对它的引用(在 Swift 和 Objective-C 中)

理想情况下,如果有问题的视图是“联系人应用程序”的页面。这个页面represents a contact然后表示对象应该fooContact由实例化它的对象设置。fooContact作为对相关联系人实例的引用。

它不必由实例化类设置,但我个人发现它是一种更清洁的方法。

我通常避免尝试覆盖所代表对象的默认 getter/setter 并由类中的另一个 var 引用它,即

weak var document: Document{
    if let docRef = self.representedObject as Document {
        return docRef
    }
    return nil
}

保持弱参考将避免参考循环。

于 2015-08-08T02:26:53.090 回答