3

我希望在 Objective C 中做一些与以下 MATLAB 命令等效的操作:

A=4:7; 

在这种情况下,变量 A 然后变成一个包含元素 [4 5 6 7] 的数组。

在Objective C中,有没有什么速记方法可以用这样的数字序列设置一个NSArray?谢谢阅读!

4

4 回答 4

4

使用 NSIndexSet 作为数组中的对象 - 然后您可以使用:

[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(4, 4)];
于 2013-06-06T17:43:20.933 回答
1

我认为在您的情况下使用 for 循环的最简单方法。

于 2013-06-06T17:42:57.550 回答
1

使用 NSIndexSet 对象:

NSArray *seqArray = [NSArray arrayWithObjects:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(4, 3)], nil];

添加:或在较新的 xcode 中:

NSArray *seqArray = @[[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(4, 3)]];
于 2013-06-06T17:43:12.033 回答
0

谢谢大家的回复。到目前为止,我只是使用一个循环:

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),但如果有人有更有效的方法来做到这一点,我肯定会感兴趣。

于 2013-06-06T21:00:23.197 回答