目标C数组和对象发行 [英] Objective C Array and Object Release

查看:166
本文介绍了目标C数组和对象发行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个关于何时释放的NSArray的元素的新手问题。请参见下面的伪code:

I have a newbie question regarding when to release the elements of a NSArray. See following pseudo code:

NSMutalbeArray *2DArray = [[NSMutableArray alloc] initWithCapacity:10];
for (int i=0;i<10;i++) {
  NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:5];
  for (int j=0;j<5;j++) {
    MyObject *obj = [[MyObject alloc] init];
    [array addObject:obj];
    [obj release];
  }

  [2DArray addObject:array];
  [array release];
}
// use 2DArray to do something

[2DArray release]

我在这里的问题是,当我释放2DArray,我是否需要先明确地释放它的每一个元素(数组)的?此外,在我松开数组的对象,做我需要释放它的每一个元素(myObject的)第一?

My question here is, when I release 2DArray, do I need to explicitly release each of its element (array) first? Also, before I release the "array" object, do I need to release each of its element (MyObject) first?

我是新来的目的C.请帮助。谢谢。

I am new to Objective C. Please help. thanks.

推荐答案

没有,你并不需要告诉每个对象为发布 D。当您发送发布方法的的NSArray ,它会自动发送一个发布方法内第一。每个项目

No, you don't need to tell each object to be released. When you send a release method to an NSArray, it automatically sends a release method to each item inside first.

所以你的情况,你发 [2DArray发布] 。这将自动发送 [阵列发行] 到其他每个阵列,它发送 [OBJ发布] 里面的每个每个对象阵列

So in your case, you send [2DArray release]. This automatically sends [array release] to every other array, which sends [obj release] to each object inside each array.

这篇关于目标C数组和对象发行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆