2013-10-18 62 views
0

使用委託方法創建一個名爲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] () 
+0

您確定您的視圖已加載?因爲你在viewDidLoad中初始化你的數組。 –

回答

2

避免讓陣列具有0容量

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

使用例如:

mvArray = [NSMutableArray new]; 

主要的問題是,你應該使用這個方法來添加對象到您的陣列:

[mvArray addObject:mv]; 

[mvArray arrayByAddingObject:mv]; - 返回新的數組,所以你將不得不使用它: mvArray = [mvArray arrayByAddingObject:mv]; - 但這樣做沒有意義。

2

更換[mvArray arrayByAddingObject:mv];[mvArray addObject:mv];

arrayByAddingObject:返回一個新的數組,你忽略了。