2 u010025993 u010025993 于 2013.05.21 11:28 提问

随机分配4个图片到iPhone按钮中

代码:

-(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

2个回答

Chengzi_963
Chengzi_963   2013.05.21 14:55
已采纳

image是NSString的数组,不是UIImage的数组

试试看

UIImage *img = [UIImage imageNamed:[images objectAtIndex:randomIndex]];
xinyoulingxi1_tong
xinyoulingxi1_tong   2013.05.21 13:38

removeObjectsAtIndexe 需要的是 NSIndexSet,不是整形:

使用[images removeObjectAtIndex:randomIndex];

或者[images removeObjectsAtIndexes:[NSIndexSet indexSetWithIndex:randomIndex]];

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
操作系统 银行家算法 按序分配算法 实现资源分配
本实习中共有两个实习题,模拟实现资源分配。 第一题:用银行家算法实现资源分配。 要求: (1) 设计一个3个并发进程共享10个同类资源的系统,进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。 (2) 设计用银行家算法和随机分配算法,实现资源分配的两个资源分配程序,应具有显示或打印各进程依次要求申请的资源数以及依次分配资源的情况。 (3) 确定一组各进程依次申请资源数的序列,在相同的情况下分别运行上述两种资源分配程序,观察运行结果。 第二题:用按序分配策略实现资源分配。 要求: (1) 设计一个3个进程共享10个资源的系统,进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。 (2) 设计用按序分配算法实现资源分配的资源分配程序,应具有显示或打印各进程依次要求申请的资源号以及依次分配资源地情况。 (3) 确定两组各进程依次要求申请的资源号,要求其中的一组中各进程按序地申请资源,另一组中各进程申请资源不受序号限制,分别运行上述设计的资源分配程序,观察运行结果。
随机产生20个正整数存入数组a中,且每个数均在1000-9999之间(包含1000和9999)。对数组进行排序,要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数放入数组b中,如果
int a[20] = {0}; int b[10] = {0}; for (int i = 0; i < 20; i++) { a[i] = arc4random() % 9000 + 1000; printf("%d ", a[i]); if ((i + 1) % 5 == 0) { printf("\n"
python - 一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配.
代码如下:#coding=utf-8 #一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配. import random# 定义一个列表来保存3个办公室 offices = [[],[],[]]# 定义一个列表来存储8位老师的名字 names = ['A','B','C','D','E','F','G','H']#开始分配 for name in names:
从数组中随机取出4个不重复的数字
NSMutableArray *array = [[NSMutableArray alloc]initWithObjects:@"0", @"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",nil]; for (int i = 0; i {         int arc = arc4random() % 10;         NSS
java 抢红包的随机钱数分配问题
抢红包是钱数都是随机的,要写出完全是凭运气的代码才行思想:肯定是要利用随机数的,大概一想,是这么个回事。那么,怎么利用随机数做到公平了,想到两种比较好的办法,假如是5个人,抢10块钱 1,首先生成5个随机数,然后利用每个随机数在5个随机数中所占的比例分配钱数。 2,首先生成4个随机数,然后排序,将这4个随机数放在0~10块的坐标上,截取5段,这5段就是钱数。 当然,还得考虑一个问题,钱
js生成四个随机字母
function getRanNum(){ var result = []; for(var i=0;i<4;i++){ var ranNum = Math.ceil(Math.random() * 25); //生成一个0到25的数字 //大写字母'A'的ASCII是65,A~Z的ASCII码就是65 + 0~25;然后
随机生成4个字母或者4个数字,并且不在之前的list集合中
private List strList = new List();         private void button1_Click(object sender, EventArgs e)         {                           strList.Add(Fun());              for (int i = 0; i     
作业4: 求一个n阶方阵对角线元素之和。
题目:求一个n阶方阵对角线元素之和。 程序: 结果: 总结:利用scanner输入n的值可以为数组分配几阶方阵的空间,在利用两层for循环为二维数组赋值,然后通过观察对角线,得知当列数等于行数时,即为对角线上的值。通过相加得出和值输出即可。
4位随机简单验证码的JS实现
验证码是用来区分人和计算机的,通常通过模糊字符、拼图等形式达到让人能看懂且计算机无法识别的效果。我们采用验证码是为了防止机器不断登录的现象,比如现实生活中的刷票、刷帖、灌水等。在本篇用JS实现4位简单网页验证码,当然这是最基础的验证码,安全性比较低。 以下是HTML的代码: 验证码: 看不清楚,换一张 给呈现验证码的文本框添加 disabl
ios随机生成4个字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 - (NSString *)shuffledAlphabet {     NSString