如何获得未知大小NSArray的前X个元素?

Har*_*ood 10 objective-c

在objectiveC中,我有一个NSArray,让我们调用它NSArray* largeArray,我想NSArray* smallArray只用前面的x个对象得到一个新的

...或者,如果largeArray已经是<= x,我只想要一个largeArray的副本.因此在索引x之后截断任何对象.

这种方法:

NSArray *smallArray = [largeArray subarrayWithRange:NSMakeRange(0, x)];
Run Code Online (Sandbox Code Playgroud)

这个非常相似的问题的答案.但是如果largeArray已经很小,它就会失败并出现错误.

Fog*_*ter 27

你可以这样做......

NSArray *smallArray = [largeArray subarrayWithRange:NSMakeRange(0, MIN(x, largeArray.count))];
Run Code Online (Sandbox Code Playgroud)

如果它小于x,那将采用前x个元素或完整数组.

如果largeArray.count是100.

如果x = 110,则将获得前100个结果.如果x = 90,那么它将获得前90个结果.

是的,有效:D

  • 为什么不使用`NSMakeRange(0,MIN(x,largeArray.count))`? (5认同)