On Wed, Apr 8, 2009 at 7:46 AM, Graham Cox <graham....@bigpond.com> wrote: > > On 08/04/2009, at 2:45 PM, Graham Cox wrote: > >> Thanks for all your help - just remains to be seen now if certain users >> can now open my app! ;) > > It occurs to me that there is another potential problem that I've > overlooked. System locale affects sorting, right? At least the comment in > the System Preferences > International suggests that to be the case, and it > makes sense of course. > > So when I hash a dictionary, I sort the keys to ensure a consistent order > for the items, but if the sorting can vary with locale, I'm going to be > stuffed. Is there a locale-proof way to sort the keys?
The compare: method is not localized, so you're fine. > The current code is: > > @implementation NSDictionary (GCHash) > > - (NSData*) gc_hash > { > NSMutableData* data = [NSMutableData data]; > NSMutableArray* keys = [[self allKeys] mutableCopy]; > > [keys sortUsingSelector:@selector(caseInsensitiveCompare:)]; // > <<----------- potential problem???? Well, yes, but just because caseInsensitiveCompare: is going to compare unequal strings as being the same, so if your dictionary contains two keys which differ only by case, they won't be sorted into any particular order. Since you care about the sort order only to get consistent results between runs and not for presentation or anything of the like, just use compare:. Mike _______________________________________________ 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