objective-c – 创建一个使用count N初始化的NSArray,所有相同的
发布时间:2020-12-16 05:37:17 所属栏目:百科 来源:网络整理
导读:我想使用相同值的对象创建一个NSArray(比如说NSNumber全部被初始化为1),但是这个数是基于另一个变量的.除了处理C风格数组之外,NSArray的任何开发者似乎都没有办法做到这一点. 任何想法,如果有一个很短的方法来做到这一点? 这是我正在寻找的: NSArray *arra
我想使用相同值的对象创建一个NSArray(比如说NSNumber全部被初始化为1),但是这个数是基于另一个变量的.除了处理C风格数组之外,NSArray的任何开发者似乎都没有办法做到这一点.
任何想法,如果有一个很短的方法来做到这一点? 这是我正在寻找的: NSArray *array = [[NSArray alloc] initWithObject:[NSNumber numberWithInt:0] count:anIntVariable]; NSNumber只是这里的一个例子,它本质上可以是任何NSObject. 解决方法
我能为此写的最紧密的代码是:
id numbers[n]; for (int x = 0; x < n; ++x) numbers[x] = [NSNumber numberWithInt:0]; id array = [NSArray arrayWithObjects:numbers count:n]; 这是因为您可以使用Xcode默认使用C99创建运行时长度确定的C数组. 如果它们都是相同的值,你也可以使用memset(尽管转换为int是顽皮的): id numbers[n]; memset(numbers,(int)[NSNumber numberWithInt:0],n); id array = [NSArray arrayWithObjects:numbers count:n]; 如果你知道你需要多少个对象,那么这段代码应该可以工作,虽然我还没有测试过: id array = [NSArray arrayWithObjects:(id[5]){[NSNumber numberWithInt:0]} count:5]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |