Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 按字母顺序排序可变数组_Iphone_Objective C_Xcode_Nsmutablearray_Nsarray - Fatal编程技术网

Iphone 按字母顺序排序可变数组

Iphone 按字母顺序排序可变数组,iphone,objective-c,xcode,nsmutablearray,nsarray,Iphone,Objective C,Xcode,Nsmutablearray,Nsarray,我有一个nsmutable数组,其中近50-60个对象有不同的名称,我可以按字母顺序对数组排序吗?可能吗,如何排序?绝对可以,您可以使用: [myArray sortUsingSelector:@selector(compare:)]; 如果阵列具有自定义对象,则需要对这些对象实施排序方法: @implementation myCustomObject ... -(NSComparisonResult) compare:(myCustomObject*) other {

我有一个nsmutable数组,其中近50-60个对象有不同的名称,我可以按字母顺序对数组排序吗?可能吗,如何排序?

绝对可以,您可以使用:

[myArray sortUsingSelector:@selector(compare:)];
如果阵列具有自定义对象,则需要对这些对象实施排序方法:

@implementation myCustomObject
  ...

  -(NSComparisonResult) compare:(myCustomObject*) other {
      return [self.name compare:other.name];
  }

@end
当然,您可以使用:

[myArray sortUsingSelector:@selector(compare:)];
如果阵列具有自定义对象,则需要对这些对象实施排序方法:

@implementation myCustomObject
  ...

  -(NSComparisonResult) compare:(myCustomObject*) other {
      return [self.name compare:other.name];
  }

@end

对于这样的简单排序,我喜欢使用排序描述符

假设您有一个可变的对象数组,其类具有name NSString属性:

NSSortDescriptor *sort=[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO];
[myArray sortUsingDescriptors:[NSArray arrayWithObject:sort]];

对于这样的简单排序,我喜欢使用排序描述符

假设您有一个可变的对象数组,其类具有name NSString属性:

NSSortDescriptor *sort=[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO];
[myArray sortUsingDescriptors:[NSArray arrayWithObject:sort]];

TechZen的方法工作得很好,但如果使用NSSortDescriptor的+SortDescriptor with key:ascending:selector:,并将localizedCompare:作为选择器传递,效果会更好。通过这种方式,排序被本地化为用户的语言,这可以在字符串比较中起到很大的作用。

TechZen的方法工作得很好,但是如果使用NSSortDescriptor的+SortDescriptor with key:ascending:selector:,将localizedCompare:作为选择器传递,则效果会更好。通过这种方式,排序被本地化为用户的语言,这可以在字符串比较中产生很大的差异

myArray=[myDict keysSortedByValueUsingSelector:@selector(compare:)]; 
只是为我工作


只是为我工作

简单数组的一行回答很好。简单数组的一行回答很好。这将以W开头,而不是A。如何以A开头?我得到了升序首字母大写和小写。比如A到Z,然后A到Z。我需要做什么。这将以W开始,而不是A。如何以A开始?我得到了升序第一个大写字母和小写字母。比如A到Z,然后A到Z。我需要做的是。。和以前的答案有什么区别?嗯。。与先前的答案有什么不同?