我有NSArray
看起来像这样:
contactNamesArray = [[NSMutableArray alloc] initWithObjects:@"John Galt", @"Michael Wales", @"James Joyce", @"Shakespeare", nil];
从中,我想制作一个{em}所有相同值的NSArray
,但是看起来像这样:
newContactNamesArray = [[NSMutableArray alloc] initWithObjects:@"john galt", @"michael wales", @"james joyce", @"shakespeare", nil];
我想这样做,因为我想在第二个数组中进行搜索,我想用普通字母替换中的每个大写字母。
你如何在Objective-C中做这样的事情?提前谢谢!
答案 0 :(得分:5)
您可以浏览数组,并通过调用
将每个元素转换为小写[element lowercaseString]
就可以了。但是,这对于实现不区分大小写的搜索来说非常不理想:更好的方法是保持字符串不变,并使用caseInsensitiveCompare
方法代替搜索。
答案 1 :(得分:5)
你为什么要复制?您可以以不区分大小写的方式对NSArray进行排序:
NSArray *sortedContactNamesArray = [contactNamesArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
另外,请记住sortedArrayUsingSelector
返回一个数组,其中包含对原始项目的引用,而不是它们的副本。