我一直在使用NSArray
s和NSMutableArray
s,它們將NSDate
對象存儲了幾天。我注意到調用[listOfDates removeObject:date1]
會從陣列中刪除所有NSDate
對象。我已經這樣做了,以刪除對象:如何從NSMutableArray中刪除NSDate對象
NSMutableArray *dateList; // Has Dates in it
NSDate *dateToRemove; // Date Object to Remove
__block NSUInteger indexToRemove;
__block BOOL foundMatch = NO;
[dateList enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if ([obj isEqualToDate:dateToRemove]) {
indexToRemove = idx;
foundMatch = YES;
*stop = YES;
}
}];
if (foundMatch) {
[dateList removeObjectAtIndex:indexToRemove];
}
有沒有更好的方式來做到這一點?也許另一個數據結構?還是更簡單的功能?
如果該數組中的實際對象(與副本),使用'removeObjectIdenticalTo: '。否則,'removeObjectAtIndex:'。 –
我已經讀過它,它陳述'因此,匹配是根據對象對isEqual:消息的響應來確定的。我認爲我的問題是NSDate對象的isEqual實現不會查看存儲在對象中的日期時間。所以我想知道是否有其他解決方案的人使用。 – Ryan
你的問題是,NSDate對象DO實現isEqual,並且你有多個相等的NSDate對象在數組中。 –