我要排序的 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; },
关于如何解决这个问题有什么想法吗?
谢谢米凯尔
最佳答案
几个选项...
向您的类添加一个只读属性,该属性返回您的评级 iVar 的整数版本。然后根据这个属性排序。
使用
sortedArrayUsingFunction:
并编写一个函数,根据它们的整数值比较 2 个排名,并返回排序顺序。
1 看起来应该简单很多。
关于objective-c - 从 plist 1-10 中对 NSString 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5261778/