我想要排序的plist有问题。这是一个高分,我想对球员排名进行排序。问题是排名是一个字符串,这搞砸了排序(我得到1,10,2,3,4,5,6,7,8,9)。
我需要以正确的方式对其进行排序。对于排序我使用:
NSArray *unSortedNames = [NSArray arrayWithContentsOfURL: plistURL];
NSSortDescriptor *descriptor = [[[NSSortDescriptor alloc] initWithKey:@"rating" ascending:YES] autorelease];
names = [[unSortedNames sortedArrayUsingDescriptors:[NSArray arrayWithObject:descriptor]] retain];
前三名球员的日志如下所示:
{ isUser = NO; nick = Player; rating = 1; score = 57314; }, { isUser = NO; nick = Player321; rating = 10; score = 212; }, { isUser = NO; nick = "Player123"; rating = 2; score = 24540; },
关于如何解决这个问题的任何想法?
感谢Mikael
答案 0 :(得分:2)
几个选项......
向您的类添加一个readonly属性,该属性返回您的等级iVar的整数版本。然后根据此属性进行排序。
使用sortedArrayUsingFunction:
编写一个比较2个排名的函数,根据它们的整数值,然后返回排序顺序。
1似乎应该更加简单。