我希望在 Objective C 中做一些与以下 MATLAB 命令等效的操作:
A=4:7;
在这种情况下,变量 A 然后变成一个包含元素 [4 5 6 7] 的数组。
在Objective C中,有没有什么速记方法可以用这样的数字序列设置一个NSArray?谢谢阅读!
我希望在 Objective C 中做一些与以下 MATLAB 命令等效的操作:
A=4:7;
在这种情况下,变量 A 然后变成一个包含元素 [4 5 6 7] 的数组。
在Objective C中,有没有什么速记方法可以用这样的数字序列设置一个NSArray?谢谢阅读!
使用 NSIndexSet 作为数组中的对象 - 然后您可以使用:
[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(4, 4)];
我认为在您的情况下使用 for 循环的最简单方法。
使用 NSIndexSet 对象:
NSArray *seqArray = [NSArray arrayWithObjects:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(4, 3)], nil];
添加:或在较新的 xcode 中:
NSArray *seqArray = @[[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(4, 3)]];
谢谢大家的回复。到目前为止,我只是使用一个循环:
NSMutableArray *mutableArray = [NSMutableArray arrayWithCapacity:4];
for (int i=0; i<4; i++) {
int value=i+4;
[mutableArray addObject:[NSNumber numberWithInt:value]];
}
NSArray *finalArray=[NSArray arrayWithArray:mutableArray];
使用 NSIndexSet 似乎并没有做同样的事情(谢谢,Martin R 和 BergQuester),但如果有人有更有效的方法来做到这一点,我肯定会感兴趣。