【问题标题】:Call a method on a class whose instance is owned by another调用其实例由另一个拥有的类的方法
【发布时间】:2011-10-01 11:25:50
【问题描述】:

我有两个类,都继承自NSObject。一个叫class1,另一个叫class2。它们都有一个实例,class1->obj1class2->obj2

class1init 方法中,我创建了class2 的实例。从obj2init方法我想从obj1调用实例方法-(void)methode

我该怎么做(什么是代表,我可以使用一个吗)?

【问题讨论】:

    标签: objective-c cocoa methods composition


    【解决方案1】:
    - initWithThingy:(Class1 *)anObj
    {
        self = [super init];
        if (self) {
            obj1 = [anObj retain]; // or use your set method/property, if you have one
            [obj1 methode];
        }
        return self;
    }
    

    【讨论】:

    • 如果obj1 拥有obj2(我假设是因为obj1 创建/正在创建obj2),这是一个共同所有权,这可能导致泄漏(更准确地说,借用你的术语,废弃的物品)。让obj2 通过弱/非保留关系了解obj1 可能会更好。
    猜你喜欢
    • 2015-06-10
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多