如何获得对在Objective-C中实例化第二个对象的对象的引用?

eharo2

有一个对象(secondObject),它是NSObject子类的实例,并且在secondObject内,我想获得对实例化secondObject的对象(firstObject)的引用。

例子:

在FirstObject.m中(UIViewController的子类)

    SecondObject *secondObject = [[SecondObject alloc] init];

在SecondObject.m中

    @implementation SecondObject
    - (id) init {
        self = [super init];
        NSLog(@"Parent object is of class: %@", [self.parent class]);
    return self;
    }
    @end

我在寻找类似于viewControllers的.parentViewController属性的东西

我一直在研究KeyValueCoding,但找不到解决方案。

我实现的解决方法是在secondObject.m中创建一个initWithParent:(id)parent方法,然后在实例化时传递self。

在SecondObject.m中

    @interface SecondObject ()
    @property id parent;
    @end

    @implementation SecondObject
    - (id) initWithParent:(id)parent {
        self = [super init];
        self.parent = parent;
        NSLog(@"Parent object is of class: %@", [self.parent class]);
        return self;
    }

    @end

然后在fisrtObject.m中实例化对象,如下所示

    SecondObject *secondObject = [[SecondObject alloc] initWithParent:self];

有更简单的方法吗?

RGDS .... Enrique

克里斯·弗莱纳(Chris Flesner)

对象没有任何指向创建它的对象的指针。

您的initWithParent:方法可以使用,但是您可能要考虑一下为什么您的对象需要了解其创建者,以及是否没有更好的方法来完成您要完成的任务。

同样,您可能希望将父属性设为弱属性,或者最终将在所有位置创建保留周期。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获得标准列表中的第二个元素

来自分类Dev

CMake-如何在目录名称中获得第二个LAST?

来自分类Dev

如何遍历对象,仅使用for in循环打印第二个属性?

来自分类Dev

如何在Spring Boot应用程序中创建第二个RedisTemplate实例

来自分类Dev

如何创建jquery对象的第二个实例?

来自分类Dev

如何在量角器中选择具有相同类名的第二个对象的第二个元素

来自分类Dev

如何使用std :: lower_bound比较没有第二个对象的对象变量进行比较

来自分类Dev

如何通过在JavaScript中匹配一些值来使用第二个对象更新第一个对象

来自分类Dev

如何从第二个对象更改第一个对象的值?

来自分类Dev

仅当第一个对象实现第二个对象所需的接口时,才在C#中如何在运行时编写两个对象?

来自分类Dev

Javascript:如果对象具有匹配的键,如何用第二个对象中的值替换第一个对象的值

来自分类Dev

如何在第二个线程中实例化DBContext?

来自分类Dev

如何在Java中返回子字符串的第二个实例?

来自分类Dev

如何获得列表中倒数第二个值?

来自分类Dev

Reg Expression-在javascript中如何获取第二个实例?

来自分类Dev

如何找到stdclass对象数组的第二个元素

来自分类Dev

如何将对象传递到第二个新的Delphi表单中

来自分类Dev

如何获得第一个和第二个对象

来自分类Dev

如何加快要从第一个列表中获取第二个列表中不存在的对象的现有代码的速度?

来自分类Dev

如何从第二个数组中的第一个数组中找到对象?迅捷的iOS

来自分类Dev

如何获得第二个标签值

来自分类Dev

Ping无法在OpenStack实例中获得第二个IP

来自分类Dev

如何获得第一个变量的排名是第一个对象中的对象,并且在android中第二个对象中有数组

来自分类Dev

在objective-c中禁用对第二个屏幕的聚焦

来自分类Dev

如何在量角器中选择具有相同类名的第二个对象的第二个元素

来自分类Dev

我如何获得哈希图的第二个对象

来自分类Dev

如何替换网址中字符的第二个实例?

来自分类Dev

如何在for循环中使用第二个对象?

来自分类Dev

如何使用 Java/JavaFX 代码读取第二个数组上的 JSON 对象

Related 相关文章

  1. 1

    如何获得标准列表中的第二个元素

  2. 2

    CMake-如何在目录名称中获得第二个LAST?

  3. 3

    如何遍历对象,仅使用for in循环打印第二个属性?

  4. 4

    如何在Spring Boot应用程序中创建第二个RedisTemplate实例

  5. 5

    如何创建jquery对象的第二个实例?

  6. 6

    如何在量角器中选择具有相同类名的第二个对象的第二个元素

  7. 7

    如何使用std :: lower_bound比较没有第二个对象的对象变量进行比较

  8. 8

    如何通过在JavaScript中匹配一些值来使用第二个对象更新第一个对象

  9. 9

    如何从第二个对象更改第一个对象的值?

  10. 10

    仅当第一个对象实现第二个对象所需的接口时,才在C#中如何在运行时编写两个对象?

  11. 11

    Javascript:如果对象具有匹配的键,如何用第二个对象中的值替换第一个对象的值

  12. 12

    如何在第二个线程中实例化DBContext?

  13. 13

    如何在Java中返回子字符串的第二个实例?

  14. 14

    如何获得列表中倒数第二个值?

  15. 15

    Reg Expression-在javascript中如何获取第二个实例?

  16. 16

    如何找到stdclass对象数组的第二个元素

  17. 17

    如何将对象传递到第二个新的Delphi表单中

  18. 18

    如何获得第一个和第二个对象

  19. 19

    如何加快要从第一个列表中获取第二个列表中不存在的对象的现有代码的速度?

  20. 20

    如何从第二个数组中的第一个数组中找到对象?迅捷的iOS

  21. 21

    如何获得第二个标签值

  22. 22

    Ping无法在OpenStack实例中获得第二个IP

  23. 23

    如何获得第一个变量的排名是第一个对象中的对象,并且在android中第二个对象中有数组

  24. 24

    在objective-c中禁用对第二个屏幕的聚焦

  25. 25

    如何在量角器中选择具有相同类名的第二个对象的第二个元素

  26. 26

    我如何获得哈希图的第二个对象

  27. 27

    如何替换网址中字符的第二个实例?

  28. 28

    如何在for循环中使用第二个对象?

  29. 29

    如何使用 Java/JavaFX 代码读取第二个数组上的 JSON 对象

热门标签

归档