我有一个管理NSTableView的NSViewController,并注意到NSViewController有一个representedObject属性,但它不是一个IBOutlet,并且我无法在接口构建器中将NSTableView的dataSource绑定到representedObject的NSViewController属性。representedObject属性应该如何使用?有没有正确用法的例子?
发布于 2011-12-27 08:49:25
representedObject属性应设置为位于半边之外的对象,例如文档、另一个模型控制器或模型对象。nib中的东西应该从VC或VC的representedObject中获取数据。
发布于 2015-08-08 10:26:53
我知道这是一个古老的话题,但我想我应该补充一下,因为我对representedObject做了相当多的研究。希望这能有所帮助!
representedObject是对视图应该表示的某个AnyObject (NSObject)的引用。
它不是对象的副本,而是对它的引用(在Swift和Objective-C中)
理想情况下,如果有问题的视图是“联系人应用程序”的页面。这个页面represents a contact,然后representedObject应该被实例化它的对象设置为fooContact。fooContact是对有问题的联系人实例的引用。
它不一定要由实例化类来设置,但我个人发现它是一种更简洁的方法。
一般情况下,我会避免尝试重写representedbject的默认getter/setter,并通过类中的另一个var引用它。
weak var document: Document{
if let docRef = self.representedObject as Document {
return docRef
}
return nil
}维护弱引用将避免引用循环。
https://stackoverflow.com/questions/8639263
复制相似问题