我有一個對象數組,每個對象都有一個日期。 我想在另一個數組上組合每個對象具有相同的日期。 我的想法是這樣的:按對象日期對數組排序,對於數組上的每個對象執行此操作:如果索引i處的對象與索引i + 1處的對象日期相同,則將索引i處的對象添加到臨時數組;否則將索引i處的對象添加到臨時數組中,將該數組添加到我的輸出數組中,並從我的臨時數組中刪除所有對象。另一個陣列上的數組元素
我的代碼是這樣的:
- (void) group{
NSMutableArray *aux = [[NSMutableArray alloc] init];
MyObject *currentObject;
MyObject *nextObject;
// Sort array
NSArray *sortedArray;
sortedArray = [_storeManager.activities sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
NSDate *first = [(MyObject *)a date];
NSDate *second = [(MyObject *)b date];
return [first compare:second];
}];
// Grouping array
if ([sortedArray count] > 0) {
for (int i = 0; i < [sortedArray count] -1 ; i++) {
currentObject = sortedArray[i];
nextObject = sortedArray[i+1];
int currentDayObject = [currentObject getDayOfDate];
int currentMonthObject = [currentObject getMonthOfDate];
int currentYearObject = [currentObject getYearOfDate];
int nextDayObject = [nextObject getDayOfDate];
int nextMonthObject = [nextObject getMonthOfDate];
int nextYearObject = [nextObject getYearOfDate];
if ((currentDayObject == nextDayObject) && (currentMonthObject == nextMonthObject) && (currentYearObject == nextYearObject)) {
[aux addObject:currentObject];
} else {
[aux addObject:currentObject];
[_grouped addObject:aux];
[aux removeAllObjects];
}
}
[_grouped addObject:aux];
}
爲什麼,如果我做NSLog(@"items on grouped %d",[_grouped count]);
,它總是返回0?
「我想在另一個陣列上將每個對象與同一日期進行分組。 使用NSMutableDictionary(鍵=日期,值=相同日期對象數組)將在你的情況下工作? – Piyuesh