objective-c - 从 plist 1-10 中对 NSString 进行排序

标签 objective-c ios sorting plist

我要排序的 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;
},

关于如何解决这个问题有什么想法吗?

谢谢米凯尔

最佳答案

几个选项...

  1. 向您的类添加一个只读属性,该属性返回您的评级 iVar 的整数版本。然后根据这个属性排序。

  2. 使用 sortedArrayUsingFunction: 并编写一个函数,根据它们的整数值比较 2 个排名,并返回排序顺序。

1 看起来应该简单很多。

关于objective-c - 从 plist 1-10 中对 NSString 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5261778/

相关文章:

ios - EKEvent接受邀请

objective-c - IOS:处理一个对象

ios - 在 ios swift 中以编程方式呈现新 Controller 仅显示空白屏幕

iphone - 如何在 iOS - iPhone 上为同一类的不同实例命名

java - Android比较特殊字母

ios - 有什么方法可以将参数的 NSDictionary 附加到 NSURLRequest 而不是手动制作字符串?

ios - 通过开发人员获取更多应用

mysql - 在 SQL 中排序时如何保留逻辑分组?

objective-c - CTLineGetStringRange 和 CTLineGetGlyphCount 返回的行中字符数错误

java - 如何使用插入排序对对象数组进行排序?