作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在我的应用程序中,我有几个循环访问 NSMutableArray 的成员以使用它们。这里有一个例子:
for (a=0;a<[items count];a++)
{
iItem *item = [[items objectAtIndex:a] autorelease];
[page.view addSubview:item];
NSLog(@"Item Added: %d\nItem Frame X:%f Y:%f W:%f H:%f",item.itemId,item.frame.origin.x,item.frame.origin.y,item.frame.size.width,item.frame.size.height);
[item setDelegate:page];
if ([[items objectAtIndex:a] zOrder] == 1)
[page.view sendSubviewToBack:item];
else
[page.view bringSubviewToFront:item];
//[item release];
//item = nil;
}
我的问题是,如果我在将 iItem 添加到 MutableArray 后使用 alloc/init 和 release 以不同的方法创建了 iItem 对象,是否有必要在使用后在循环中创建的 iItem 上使用 release?
谢谢。
最佳答案
正如 omz 已经指出的,您过度发布了您的项目。如果您的数组中只有 iItem
类型的项目,您可以使用快速枚举:
for (iItem *item in items)
{
[page.view addSubview:item];
NSLog(@"Item Added: %d\nItem Frame X:%f Y:%f W:%f H:%f",item.itemId,item.frame.origin.x,item.frame.origin.y,item.frame.size.width,item.frame.size.height);
[item setDelegate:page];
if ([item zOrder] == 1)
[page.view sendSubviewToBack:item];
else
[page.view bringSubviewToFront:item];
}
关于objective-c - 遍历 NSMutableArray 对象。最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9016986/
我是一名优秀的程序员,十分优秀!