0

数组替换先前添加的对象。

array=[[NSMutableArray alloc]init];

NSNumber * index;

AppDelegate * delegate=(AppDelegate *)[[UIApplication sharedApplication]delegate];
if(delegate.counter!=NumberImages.count)
{
    NSLog(@"%d",delegate.counter);

    imgview.tag=delegate.counter;

    NSLog(@"%ld",(long)imgview.tag);

    index=[[NSNumber alloc]initWithInt:[[firstNo objectAtIndex:imgview.tag]integerValue]];

    //int a=[[firstNo objectAtIndex:imgview.tag]integerValue];

    NSLog(@"%@",index);

    NSLog(@"%@",array);
}

[array addObject:index];

NSLog(@"%@",array);

问题是当我插入对象时,先前存在的对象被替换。

我该怎么做?

4

3 回答 3

1

根据定义,数组在每个索引处都有一个值。如果您在同一索引中添加 2 个对象,则最后一次插入会覆盖所有过去的对象。此外,如果您每次都创建数组,每个数组都会“删除”旧数组。事实上,你不释放它是在泄漏内存。

于 2013-07-16T11:30:19.527 回答
1

这是问题所在:

 array=[[NSMutableArray alloc]init];

将其移入

-(void)viewDidLoad

或者

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

它应该被修复。

因为您一遍又一遍地调用相同的函数,所以数组被重新初始化,它只有 1 个值。

于 2013-07-16T11:36:31.380 回答
0
if (!array) {
         array=[[NSMutableArray alloc]init];
}

我想这会对你有所帮助。

于 2013-07-16T13:03:45.510 回答