objective-c - 如何用同一个对象(NSString)填充整个 NSMutableArray
问题描述
我正在尝试这个,但它看起来不对,有什么选择吗?谢谢
NSMutableArray *copyy = [[NSMutableArray alloc] initWithCapacity:8];
for (int i = 1; i < copyy.count; i++) {
NSString *str = @"test";
[copyy addObject:[str copy][i]];
}
解决方案
你可以在上面写一个简单的类别NSArray
:
@interface NSArray(Repeating)
+ (NSArray*)arrayByRepeatingObject:(id)object times:(NSUInteger)t;
@end
@implementation NSArray(Repeating)
+ (NSArray*)arrayByRepeatingObject:(id)object times:(NSUInteger)t {
id objects[t];
for(NSUInteger i=0; i<t; ++i) objects[i] = object;
return [NSArray arrayWithObjects:objects count:t];
}
@end
所以你可以通过重复一个对象来构建一个数组,比如:
NSArray * items = [NSArray arrayByRepeatingObject:@"test" times:8];
注意:如果你想要一个可变版本,只需要一个mutableCopy
:
NSMutableArray * mutableItems = items.mutableCopy;
推荐阅读
- python - 2D 热方程 - 添加初始条件并检查 Dirichlet 边界条件是否正确
- python - 如何在python中从列表转换为json?
- javascript - 无法从 Windows10 连接到 Raspberry Pi 上的本地 mysql 数据库
- javascript - 如何在包含其他元素的 contenteditable div 中设置插入符号位置?
- string - VB.NET - 查找一个字符后跟一个句点并删除句点
- javascript - 如何在 JS 中获取所有匹配的数据?
- typescript - 使用 Pick 为具有索引类型的对象构造类型
- python - 使用列表和多个数据框查找数据框
- c++ - QLineEdit 中输入的小数如何进行乘法运算?
- reporting-services - SSRS 报告 | 使用不同数据集的多个工作表