替换以前添加的对象的数组。
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);
问题在于,当我插入对象时,先前存在的对象被替换。
我怎么能这样做?
答案 0 :(得分:1)
根据定义,数组在每个索引处都有一个值。如果在同一索引中添加2个对象,则最后一个插入将覆盖所有过去的对象。此外,如果每次都创建数组,则每个数组都“删除”旧数组。事实上,你通过不释放来泄露记忆。
答案 1 :(得分:1)
问题在于:
array=[[NSMutableArray alloc]init];
将其移至
-(void)viewDidLoad
或
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
应该修复。
因为您反复调用相同的函数,所以数组会重新初始化,并且只有1个值。
答案 2 :(得分:0)
if (!array) {
array=[[NSMutableArray alloc]init];
}
我认为这会对你有所帮助。