使用委托方法我创建一个名为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 :(得分: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:
返回一个你忽略的新数组。