如何在Cocoa中获得NSArray的前x个元素?

Coc*_*ewb 52 cocoa objective-c

Cocoa的新手,似乎缺少一些东西.

获得NSArray另一个x元素的最优雅/惯用方法是NSArray什么?显然我可以遍历它们并手动存储它们,但似乎必须有一个更标准的方法来做到这一点.

我期待有一个-arrayWithObjectsInRange:或类似的东西,但没有看到任何东西......

NSArray* largeArray...// Contains 50 items...

NSArray* smallArray = // fill in the blank     

// smallArray contains first 10 items from largeArray
Run Code Online (Sandbox Code Playgroud)

谢谢!

mip*_*adi 134

你可以用subarrayWithRange:.

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

  • @SeptiadiAgus:`NSRange`的格式为`{起始索引,长度}`,所以如果你想要前10个元素,第二个参数是'10`. (13认同)
  • 请记住,如果largeArray没有x项目程序将崩溃. (11认同)
  • 谢谢@Harry.应该是MIN(10,largeArray.count) (3认同)
  • @Szu MAX - > MIN? (2认同)

kas*_*kad 20

firstNItems = [items subarrayWithRange:NSMakeRange(0, MIN(n, items.count))];
Run Code Online (Sandbox Code Playgroud)