我有一个数组,里面有一些名字(String)。
1。)我想按字母顺序在数组中列出这些名称。 2.)稍后我将为此数组添加更多名称,因此必须将其附加到此数组。
我如何以编程方式执行此操作?
注意:到目前为止,我没有任何代码来展示我的工作。我只是创建了一个数组。
修改
如果我的数组声明是;
NSArray *array = [NSArray arrayWithObjects:@"A",@"C",@"B", @"M",nil];
我怎么能对此进行排序?
答案 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)
如果您希望以后能够追加,那么您应该使用NSArray
或NSDictionary
的可变类型。如果数组只包含没有关联其他数据的名称,那么最简单的方法是使用NSMutableArray
来存储它们。
要按字母顺序排列,您可以将NSArray
方法sortedArrayUsingSelector:
与@selector(caseInsensitiveCompare:)
一起使用。这样可以尽可能高效地为您完成所有工作。