代码:
-(void)RandomButtonImage {
NSMutableArray *images = [NSMutableArray arrayWithObjects:@"Character_1_1.png",@"Character_1_2.png",@"Character_2_1.png",@"Character_2_2.png" nil];
NSArray *Buttons = [NSArray arrayWithObjects:AnsButton1,AnsButton2,AnsButton3,AnsButton4, nil];
for (UIButton *btn in Buttons) {
int randomIndex = random() % images.count;
UIImage *img = [images objectAtIndex:randomIndex];
[btn setImage:img forState:UIControlStateNormal];
[images removeObjectsAtIndexes:randomIndex];
}
}
但是运行这段代码之后最后一行报错:[imagesremoveObjectsAtIndexes:randomIndex];
Implicit Conversion of 'int' to 'NSindexset' is disallowed with ARC
image是NSString的数组,不是UIImage的数组
试试看
UIImage *img = [UIImage imageNamed:[images objectAtIndex:randomIndex]];
removeObjectsAtIndexe
需要的是 NSIndexSet
,不是整形:
使用[images removeObjectAtIndex:randomIndex];
或者[images removeObjectsAtIndexes:[NSIndexSet indexSetWithIndex:randomIndex]];