按字母顺序列出数组的内容

时间:2012-01-10 17:36:27

标签: iphone objective-c

我有一个数组,里面有一些名字(String)。

1。)我想按字母顺序在数组中列出这些名称。 2.)稍后我将为此数组添加更多名称,因此必须将其附加到此数组。

我如何以编程方式执行此操作?

注意:到目前为止,我没有任何代码来展示我的工作。我只是创建了一个数组。

修改

如果我的数组声明是;

NSArray *array = [NSArray arrayWithObjects:@"A",@"C",@"B", @"M",nil];

我怎么能对此进行排序?

4 个答案:

答案 0 :(得分:2)

这将满足您的需求:

NSArray * sortedArray = [yourArray sortedArrayUsingSelector: @selector(caseInsensitiveCompare:)];

当然,有些人可能会问为什么在提问之前你没有在Apple docs中搜索“排序数组”。不过我不是。我很乐意接受积分!

答案 1 :(得分:2)

你应该尝试习惯于查看文档 - 一旦掌握了它,你可以很快解决问题

NSArray的文档为您提供了对数组进行排序的确切方法:

NSArray *array       = [NSArray arrayWithObjects:@"A", @"C", @"B", @"M", nil];
NSArray *sortedArray = [array sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];

现在考虑到您以后想要添加对象,您很可能会使用NSMutableArray NSMutableArray文档来显示该方法:

- (void)sortUsingSelector:(SEL)comparator

因此你可以使用

NSMutableArray *myMutableArray = [NSMutableArray arrayWithObjects:@"c", @"a", @"b", nil];
[myMutableArray sortUsingSelector:@selector(caseInsensitiveCompare:)];

将对您的数组进行排序,从而产生

2012-01-10 17:47:11.477 Untitled[11904:707] (
    a,
    b,
    c
)

答案 2 :(得分:1)

这要求您对数组进行排序(并且在添加新值之后需要执行此操作)。这很简单:

NSArray *sortedArray = [myArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];

此示例不区分大小写 - 但您也可以区分大小写。

答案 3 :(得分:1)

如果您希望以后能够追加,那么您应该使用NSArrayNSDictionary的可变类型。如果数组只包含没有关联其他数据的名称,那么最简单的方法是使用NSMutableArray来存储它们。

要按字母顺序排列,您可以将NSArray方法sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)一起使用。这样可以尽可能高效地为您完成所有工作。