Thank you both for your suggestions.  I ended up going with Ken's idea 
regarding the synthetic property.  It was added to a NSManagedObject derived 
class so I couldn't use it during the fetch request without actually adding an 
attribute but I did use it to sort the resulting array.  The synthetic property 
computes an priority index when invoked.  It performs very well.

-Michael

On Feb 8, 2011, at 5:19 PM, Ernesto Giannotta wrote:

> 
> On 07-feb-2011, at 16:29, Ken Thomases wrote:
> 
>> On Feb 7, 2011, at 8:56 AM, Michael Crawford wrote:
>> 
>>> I'm trying to implement a feature where I sort a cross-section of music 
>>> from multiple genres with up to two different keys, where the items with a 
>>> genre matching the first key appear first in the collection and items with 
>>> a genre matching the second key appear after the first group in the 
>>> collection.  All songs with a genre not matching the first or second keys 
>>> can be in any order following the first two groups.
>>> 
>>> So I took a look at NSSortDescriptor but it is not apparent to me how I 
>>> would accomplish my goal with this class.  If I sort with it based on the 
>>> genre key, will basically sort them in alphabetical ascending or descending 
>>> order, not what I want.
>> 
>> Here are two possible approaches:
>> 
>> 1) Implement a synthetic property which is more amenable to the sort 
>> ordering you want.  Something which returns 0 for the first genre, 1 for the 
>> second, and 2 for all others, for example.
>> 
>> 2) Implement a custom comparator method that compares the existing genre 
>> property in the manner you want: the first genre equal to itself but coming 
>> before all others; the second genre coming after the first, equal to itself, 
>> and coming before the remaining genres; all other genres coming after the 
>> first two but unordered with respect to each other.
>> 
>> Either or both of these methods could be implemented in a category if that 
>> makes things easier.
>> 
> 
> Or subclass the NSSortdescriptor and implement
> 
> - (NSComparisonResult)compareObject:(id)object1 toObject:(id)object2
> 
> 
> Cool Runnings,
> Erne.
> 

_______________________________________________

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

Reply via email to