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

时间:2014-07-17 08:45:52

标签: ios objective-c memory-management

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

//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

这是Apple获取特定视图控制器父级的标准方法。

2 个答案:

答案 0 :(得分:0)

对于Objective C或iOS SDK中的对象,没有一般的,正式的“所有权”概念。所以不,没有标准的“神奇”方式来做你想做的事。

答案 1 :(得分:-1)

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