如何重新排序我的数组?

时间:2011-05-03 08:48:06

标签: objective-c arrays

我有一个包含一年中所有月份的数组:

[January,February,March,April,May,June,July,August,September,October,November,December];

当用户在文本字段中键入月份时,如他们键入“May”,我会在文本字段中记下这些内容并将其存储为字符串。 现在我想重新排序我的数组,May是第一个索引,所以我的数组现在看起来像这样:

[May, June, July, August, September, October, November, December];

我不关心1月到3月的月份。 我无法正确重新排序我的阵列?关于如何做到这一点的任何想法?

1 个答案:

答案 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)];
}