代码之家  ›  专栏  ›  技术社区  ›  Zigglzworth

在iOS应用程序中发布定制的NSObject类

  •  2
  • Zigglzworth  · 技术社区  · 15 年前

    这个类有许多不同类型和类型的属性 方法等。

    当我在我的应用程序中实例化这个类时(比如在主视图控制器中),我

    MyObject *myObject = [[MyObject alloc] initWithParameters:parms];
    [myObject doSomeMethodCall];
    [myObject release];
    

    所以我的问题是: 当我释放myObject时,它会自动释放所有声明的对象、变量等吗。 我在MyObject.h文件中声明的?

    或者

    我需要创建一个自定义的发布方法来发布所有这些吗?

    我问是因为内存管理问题。

    4 回复  |  直到 11 年前
        1
  •  5
  •   kubi    15 年前

    你需要实现一个 dealloc 方法,并使用该方法释放您拥有的任何资源。

    http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmObjectOwnership.html#//apple_ref/doc/uid/20000043-SW4

    - (void)dealloc {
        [mainSprocket release];
        [auxiliarySprocket release];
        [super dealloc];
    }
    

    重要提示:您从不调用对象上的dealloc方法,当需要清理时,它会由运行时自动调用。

        2
  •  0
  •   Community Mohan Dere    9 年前
        3
  •  0
  •   Rengers    15 年前

    最后,它将调用myObject上的dealloc方法。在 dealloc 方法,则应该释放myObject拥有的所有实例变量。还有,别忘了 [super dealloc]

        4
  •  0
  •   Dharmesh Dhorajiya    10 年前

    我和你有同样的问题 Zigglzworth [super dealloc] 打电话。我一开始就有了 -(void)dealloc 方法,每次都会造成车祸。移动 [超级解除锁定]

    推荐文章