How do I get the first X elements of an unknown size NSArray?

objective-c

Solution

You could do this...

NSArray *smallArray = [largeArray subarrayWithRange:NSMakeRange(0, MIN(x, largeArray.count))];

That will take the first x elements or the full array if it's smaller than x.

If largeArray.count is 100.

If x = 110 then it will take the first 100 results. If x = 90 then it will take the first 90 results.

Yep, that works :D

Problem

In objectiveC I have an NSArray, let's call it `NSArray* largeArray`, and I want to get a new `NSArray* smallArray` with just the first x objects ...OR in the event that largeArray is already size <= x I just want a copy of the largeArray. So truncating any objects after index x. This approach: ``` NSArray *smallArray = [largeArray subarrayWithRange:NSMakeRange(0, x)]; ``` Was the answer to this very similar question. But it fails with an error if largeArray is already small.

Original source

Related problems