代码之家  ›  专栏  ›  技术社区  ›  Duck

可可阵列不排序?

  •  0
  • Duck  · 技术社区  · 15 年前

    我有这套

    NSMutableSet *mySet = [NSMutableSet setWithObjects: @"2", @"8", @"7", @"0", @"3", nil];
    

    我将集合复制到数组中,并使用

    NSArray *sortedArray = [[mySet allObjects] sortedArrayUsingSelector:@selector(compare:)];
    

    结果数组的顺序与集合的顺序完全相同,并且未进行排序。为什么?

    谢谢你的帮助。

    编辑:更正排版错误。

    2 回复  |  直到 15 年前
        1
  •  3
  •   TechZen    15 年前

    我粘贴并运行了如下代码:

    NSMutableSet *mySet = [NSMutableSet setWithObjects: @"2", @"8", @"7", @"0", @"3", nil];
    NSLog(@"mySet=%@",mySet);
    NSArray *sortedArray = [[mySet allObjects] sortedArrayUsingSelector:@selector(compare:)];
    NSLog(@"sortedArray=%@",sortedArray);
    

    哪些输出:

    2010-03-17 11:06:27.982 iPhoneTestBed[41907:207] mySet={(
        0,
        2,
        7,
        8,
        3
    )}
    2010-03-17 11:06:27.984 iPhoneTestBed[41907:207] sortedArray=(
        0,
        2,
        3,
        7,
        8
    )
    

    我认为您的问题是记录排序数组。可能是您意外地记录了集合而不是数组。我做那件事浪费了半天时间。

        2
  •  3
  •   Yuji    15 年前

    嗯,它分类正确,一旦我把集合结构改成

    NSMutableSet *mySet = [NSMutableSet setWithObjects: @"2", @"8", @"7", @"0", @"3", nil];
    

    记得, "abc" 是一个 char* ,这是一种基本类型,在objective-c中很少使用,不能放入 NSArray . @"abc" NSString ,这是一个对象。