Re: Adding objects to NSMutableArray out of order?
Re: Adding objects to NSMutableArray out of order?
- Subject: Re: Adding objects to NSMutableArray out of order?
- From: Chris Suter <email@hidden>
- Date: Tue, 5 May 2009 11:05:04 +1000
Hi Colin,
On Tue, May 5, 2009 at 9:50 AM, Colin Cornaby <email@hidden> 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.
>
> Has anyone here run into a similar situation?
If you know the count before you receive the results, I'd write an
NSArray subclass and allocate a C array of the required size before
you receive the results. I think that will give you the best
performance as well as an NSArray interface. There's only a few
methods you need to implement.
If you're not sure of the size beforehand, then I'd explore using an
NSArray implementation. You could consider filling the unused spots
with [NSNull null] or perhaps use CoreFoundation with some custom
callbacks. There might be some CoreFoundation functions that will
quickly insert a load of NULL values that you can use.
Regards,
Chris
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden