【问题标题】:Sorting in nsmutable array在 nsmutablearray 中排序
【发布时间】:2009-11-05 22:38:55
【问题描述】:

假设我的游戏中有以下数据。我在 cocos2d 中开发过游戏。

Name    Score
Sagar   10000
Amit     2000
Vishal     90

以上数据存储在plist文件中。

Plist 有一个数组作为根。

里面有10本词典。

每个字典都有两个值:

  • 字符串值 - 名称
  • 数值 - 分数

当我使用时

NSMutableArray *x=[[NSMutableArray alloc] initWithContentsOfFile:@"Sagar.plist"];

我想按分数对这个可变数组进行排序。

有可能吗?

【问题讨论】:

    标签: objective-c sorting nsarray


    【解决方案1】:

    使用排序描述符:

    NSSortDescriptor * sortByScore = [[[NSSortDescriptor alloc] initWithKey:@"Score" ascending:NO] autorelease];
    NSArray * descriptors = [NSArray arrayWithObject:sortByScore];
    NSArray * sorted = [x sortedArrayUsingDescriptors:descriptors];
    

    【讨论】:

      【解决方案2】:

      参见[NSMutableArray sortUsingDescriptors:][NSMutableArray sortUsingComparator:] 等。 NSMutableArray 提供了几种排序方法。在这种情况下,如果我需要在 10.5 之前兼容,我会使用描述符方法和雪豹应用程序的比较器方法。

      【讨论】:

      • 先生,我的问题稍作修改。
      【解决方案3】:

      我相信在 iPhone 上,您的选择是

      - (void)sortUsingFunction:(NSInteger (*)(id, id, void *))compare context:(void *)context;
      

      - (void)sortUsingSelector:(SEL)comparator;
      

      这里有很多不错的信息: http://www.cocoadev.com/index.pl?SortUsingSelector

      编辑:哎呀!看到 cocos2d 并认为这是一个 iPhone 问题。

      【讨论】:

      • 不,不。这是一个 iPhone 问题。我正在使用 plist 来存储分数。问题是关于 plist 和带有 plist 的数组。不用担心。我正在研究你给定的链接。
      猜你喜欢
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多