gpt4 book ai didi

objective-c - 遍历 NSMutableArray 对象。最佳实践

转载 作者:搜寻专家 更新时间:2023-10-30 19:50:55 24 4
gpt4 key购买 nike

在我的应用程序中,我有几个循环访问 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com