将所有者引用传递给创建的对象



我需要将视图控制器的引用传递给它创建的对象之一。我有下面一段代码,在这里我实例化了我的对象

//Method in OwnerClass
- (void) someMethod{
    SomeObject *obj = [[SomeObject alloc] init];
    obj.instanceVar = self.iVar;
}

现在在SomeObject中,我想访问创建它的所有者(OwnerClass的实例)。

//Method in SomeObject
- (void) callback{
    [ownerObj callMethod] //ownerObj is the instance of OwnerClass that created an instance of SomeObj
}

我想知道如何访问SomeObject实例内部的OwnerClass实例。当然,我可以简单地在SomeObject中写一个属性,比如

@property(nonatomic) OwnerClass *ownerReference;

并在初始化SomeObject时赋值并从那里访问它。

我想知道的是是否有任何获得所有者的标准方法。类似于

self.parentViewController

这是苹果获取特定视图控制器父节点的标准方式

在Objective C或iOS SDK中,对象没有一般的、正式的"所有权"概念。所以,不,没有标准的"魔法"方法来做你想做的事情。

将引用从一个视图传递到另一个视图是错误的。如果你想在另一个控制器中调用方法你可以使用协议和委托

最新更新