On Mar 26, 2013, at 1:12 AM, Diederik Meijer | Ten Horses wrote: > But I'd like to know if there is a quicker or more efficient way to do this, > with less code. If so, please let me know.
More efficient, yes. Better? Different way to look at it at least: NSArray * orderedHits = [[result valueForKeyPath:@"hits.hits"] sortedArrayUsingComparator:^(id a, id b){ NSString * aDate = [a valueForKeyPath:@"_source.datum_gepubliceerd_ymd"]; NSString * bDate = [b valueForKeyPath:@"_source.datum_gepubliceerd_ymd"]; return [bDate compare:aDate options:NSNumericSearch]; }]; NSMutableArray * dates = [NSMutableArray array]; NSMutableArray * content = [NSMutableArray array]; NSMutableArray * contentForCurrentDate = nil; NSDate * currentDate = nil; for (NSDictionary * dict in orderedHits) { NSString * date = [dict valueForKeyPath:@"_source.datum_gepubliceerd_ymd"]; if (date) { if (date != currentDate) { contentForCurrentDate = [NSMutableArray array]; [content addObject:contentForCurrentDate]; [dates addObject:date]; } [contentForCurrentDate addObject:dict]; } } self.dates = dates; self.content = contentByDate; Also, it's generally a very bad idea to expose a mutable container in a property (ie, your self.datesArray and self.sortedJSONContent). You will hate yourself later if you run into one of several problems you can easily get yourself into. For example, you can easily mutate the container behind an object's back which can lead to it exploding, and you also lose KVO compatibility. It's better to expose an immutable container and possibly convenience methods to mutate (of either the KVC variety, or ones that at least will/didChangeKey: manually). -- Seth Willits _______________________________________________ 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com