2

我有一个NSArray看起来像这样的:

contactNamesArray = [[NSMutableArray alloc] initWithObjects:@"John Galt", @"Michael Wales", @"James Joyce", @"Shakespeare", nil];

从中,我想制作一个NSArray具有所有相同值的,但看起来像这样:

newContactNamesArray = [[NSMutableArray alloc] initWithObjects:@"john galt", @"michael wales", @"james joyce", @"shakespeare", nil];

我想这样做是因为我想在第二个数组中进行搜索,并且我想用普通字母替换其中的每个大写字母。

你如何在 Objective-C 中做这样的事情?提前致谢!

4

2 回答 2

5

您可以遍历一个数组,并通过调用将每个元素转换为小写

[element lowercaseString]

在上面。但是,这对于实现不区分大小写的搜索来说是非常次优的:更好的方法是保持字符串原样,并caseInsensitiveCompare为您的搜索使用方法。

于 2013-02-17T12:25:20.297 回答
5

你为什么要复制?您可以以不区分大小写的方式对 NSArray 进行排序:

NSArray *sortedContactNamesArray = [contactNamesArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];

另外,请记住,它sortedArrayUsingSelector返回一个引用原始项目的数组,而不是它们的副本。

于 2013-02-17T12:29:13.880 回答