Nem*_*Sys 3 release objective-c nsmutablearray
在我的应用程序中,我有几个循环访问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;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我在使用alloc/init和release将其添加到MutableArray后以不同的方法创建了iItem对象,那么在使用之后是否必须使用在循环中创建的iItem的版本?
谢谢.
til*_*ilo 14
正如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];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11410 次 |
| 最近记录: |