On May 4, 2009, at 4:50 PM, Colin Cornaby wrote:
I'm dealing with some code that returns results out of order, but
the results contain the proper index. In the end, I'd like to put
them all into an NSArray, but unlike a C array, NSArray doesn't seem
to allow me to simply reserve X number of slots and fill the slots
as the results come in.
One workaround I can see is to actually store the results in a C
array, and then initialize the NSArray from the C array. I could
also write an algorithm that would try to rearrange the
NSMutableArray as results come back, but that seems more complicate.
Initializing from a C array looks like the best bet, but this is a
commonly called function of the software that is performance
sensitive, and could be dealing with large sets of data, so I was
wondering about the overhead of this approach.
The C array may be the fastest because the C array and -
initWithObjects:count: are both fast, but will occupy double the memory.
One alternative is to start by filling the array with some dummy
object like `[NSNull null]` or `@""`. That would use less memory, but
incur extra time overhead for inserting the dummy objects. But if
NSArray isn't already too slow for your use then that additional time
should be palatable. Here you would create the array with -
initWithCapacity: to avoid extra memory reallocations while it grows.
--
Greg Parker gpar...@apple.com Runtime Wrangler
_______________________________________________
Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to arch...@mail-archive.com