bis*_*ack 1 xcode cocoa objective-c super
就像标题所说的那样,我想要指定一个超级的NSArrayController东西,有些东西self = [super[NSArrayController] function],但没有运气搜索这个.有任何想法吗?提前致谢.
编辑删除抽象例子,因为他们让人们对我问题的性质感到困惑.
这样做的目的是以编程方式执行从NSArrayController到NSButton的'add'的简单绑定在IB中执行的操作.在我的应用程序中有几个arrayControllers,所以我希望能够指定我想要通过代码获取super的那个.
我正在寻找NSArrayController的超级的原因是因为我的印象是应该解决模型而不是控制器(NSArrayController)而我的模型是一个核心数据模型,我相信我可以通过使用超级我按名称指定的NSArrayController.也许有一种更直接的方式来添加数据模型.
你问的是一个错误的问题.
首先,让我们区分一个类和一个类的实例.请注意,同一类的多个实例可能存在,实际上也常常存在.
类C可以是另一个类的子类A.然后A是超类的C.假设您有一个c类的实例C.然后,在类的方法的实现中C,self代表c它自己的实例,并super代表作为其超类c 的实例的实例A.从某种意义上说,一个类的实例C 也是类的一个实例A.
对象可以具有除超级或子类之外的其他关系.例如,一类C可以在其接口有一个实例变量B* b;.在这种情况下,一个实例c的类的C 具有一个指针的实例 b的类的B.在这种情况下,c是不是这个类的一个实例B.
NSArrayController管理对象上下文之间的关系是后者之一.的实例NSArrayController包含一个指向的一个实例NSManagedObjectContext(MOC).
所以你想做的不是得到super你的NSArrayController.相反,你想得到与之相关的moc NSArrayController.现在,你怎么得到它?要找到它,您可以在XCode或Apple Developer Connection的Web上打开引用,请参阅此处.现在就这样做.通过这些方法.你没有找到一个给你moc的人.
然后,您转到该页面的顶部,并按照超类NSArrayController.见这个参考NSObjectController.现在,浏览方法列表.你找到了-[NSObjectController managedObjectContext],哪个做了!
总之:如果你想要与之关联的moc NSArrayController,你只需要这样做
NSManagedObjectContext* moc= [arrayController managedObjectContext];
Run Code Online (Sandbox Code Playgroud)
你想要处理arrayController的实例在哪里NSArrayController.例如,如果你有多个实例NSArrayControllerS IN笔尖,你应该有多个IBOutletS IN的应用程序委托,比如说arrayController1,arrayController2等等(这是非常糟糕的变量名).然后你选择你想要处理的那个.