无法删除特定类的所有实例

时间:2013-10-18 13:09:43

标签: ios ios6 ios7

使用委托方法我创建一个名为mv的类的实例,我希望有一个清除按钮,删除它的所有实例。

所以我决定将它们添加到mutableArray中:

- (void)viewDidLoad
{
    [super viewDidLoad];
    mvArray = [[NSMutableArray alloc] initWithCapacity:0];

方法:

-(void)addItemViewController:(VCDecorations *)controller didChooseImage:(UIImage *)image    
{
    if (image) {
        self.imageDecoration = image;
        mv = [[MovableImageView alloc]initWithImage:image];
        [mvArray arrayByAddingObject:mv];
         NSLog(@"%@",mvArray);
         NSLog(@"%d",(integer_t)mvArray.count);   
        [self.view addSubview:mv];
    }

- (IBAction)doClearBtn:(id)sender {
    [mvArray removeAllObjects];
}

但似乎没有添加实例。日志是:

2013-10-18 16:06:38.149 manning1[13498:a0b] 0 
2013-10-18 16:06:42.105 manning1[13498:a0b] ( ) 
2013-10-18 16:06:42.106 manning1[13498:a0b] 0
2013-10-18 16:06:45.341 manning1[13498:a0b] ( )

2 个答案:

答案 0 :(得分:2)

避免制作容量为0的数组

mvArray = [[NSMutableArray alloc]initWithCapacity:0];

使用它,例如:

mvArray = [NSMutableArray new];

主要问题是您应该使用此方法将对象添加到数组中:

[mvArray addObject:mv];

[mvArray arrayByAddingObject:mv]; - 返回新数组,因此您必须使用它: mvArray = [mvArray arrayByAddingObject:mv]; - 但这样做没有意义。

答案 1 :(得分:2)

[mvArray arrayByAddingObject:mv];替换为[mvArray addObject:mv];

arrayByAddingObject:返回一个你忽略的新数组。