目标C,关于引用计数的问题

时间:2011-02-21 03:50:53

标签: objective-c

 -(void)addNode{
       Node *node = [[Node alloc] init];
       [node fromBytes:nodeData];
       [neighborNodes addObject:[node retain]];
       [node release];
 }

假设我有类似的方法。正在分配节点并将其添加到NSMutableArray(neighborNodes是NSMutableArray ..)我不确定此处是否需要[node retain]语句。我可以这样做吗?我把保留的话拿出来并没有释放节点..哪一个是正确的?提前谢谢......

 -(void)addNode{
       Node *node = [[Node alloc] init];
       [node fromBytes:nodeData];
       [neighborNodes addObject:node];
 }

1 个答案:

答案 0 :(得分:5)

不需要它

addObject对对象执行保留

IOW

-(void)addNode{
       Node *node = [[Node alloc] init];
       [node fromBytes:nodeData];
       [neighborNodes addObject:node];
       [node release];
 }

是正确的。