我有一个包含一年中所有月份的数组:
[January,February,March,April,May,June,July,August,September,October,November,December];
当用户在文本字段中键入月份时,如他们键入“May”,我会在文本字段中记下这些内容并将其存储为字符串。 现在我想重新排序我的数组,May是第一个索引,所以我的数组现在看起来像这样:
[May, June, July, August, September, October, November, December];
我不关心1月到3月的月份。 我无法正确重新排序我的阵列?关于如何做到这一点的任何想法?
答案 0 :(得分:1)
这应该做:
NSString *monthString = @"May";
NSUInteger monthIndex = [monthsArray indexOfObject:monthString];
NSArray *trimmedMonthsArray = nil;
if (monthIndex != NSNotFound) {
trimmedMonthsArray = [monthsArray subarrayWithRange:NSMakeRange(monthIndex, [monthArray count] - monthIndex)];
}
正如你所看到的那样,并不是重新排序(实际上它不是关于重新排序),而是关于削减一个子阵列。
如果要修改原始的可变数组而不是获取新的修剪数组,请执行以下操作:
NSString *monthString = @"May";
NSUInteger monthIndex = [monthsArray indexOfObject:monthString];
if (monthIndex != NSNotFound) {
[monthsArray removeObjectsInRange:NSMakeRange(0, monthIndex)];
}