我已經設置了一個Core Data模型,其中兩個實體處於一對多關係(Items,對於每個項目,可以有多個ResetDates)。我很確定模型設置正確。核心數據日期的問題
我可以添加新的項目,當這樣做時,添加一個新的ResetDate(使用當前日期,[NSDate date]
)。我可以檢索並顯示項目。我遇到的麻煩是檢索並顯示ResetDates。
更新:它現在的作品,非常感謝下面的答覆者。這裏是有問題的代碼:
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"resetDate" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:&sortDescriptor count:1];
NSMutableArray *sortedResets = [[NSMutableArray alloc] initWithArray:[item.resets allObjects]];
[sortedResets sortUsingDescriptors:sortDescriptors];
NSDate *oldDate = [[sortedResets lastObject] resetDate];
if (!oldDate) {
oldDate = [NSDate date];
}
NSInteger numberOfDays = [self timeIntervalWithStartDate:oldDate withEndDate:currentDate]; // This function works fine, when given two NSDate objects
daysSinceLabel.text = [NSString stringWithFormat:@"%d days", numberOfDays];
啊,好的,好的。這使得*現在更有意義 - 它是一個Reset對象,而不是一個NSDate。一個問題:'resetDate'是'Reset'類的'@ property',而不是一個方法。我對這些東西的語法還不是很好......嘗試過'[[sortedResets lastObject] .resetDate]',但這顯然不是我要找的東西...... – Triz 2009-08-26 18:24:05
@Triz since'resetDate'被聲明爲一個@屬性,你的Reset對象將會有'resetDate'和'setResetDate:'方法。這是'@ property'語法的重點。 – 2009-08-26 18:53:26
@Dave:對,好吧。但是,我在該行發出警告,說沒有聲明'resetDate'方法。我在'Reset'類的頭文件中使用了'@property(nonatomic,retain)NSDate * resetDate;',並在'@dynamic resetDate;'的實現中。它應該是'@ synthesize'而不是'@ dynamic'嗎?後者是我開始的CoreData模板是如何做的,所以我保留了它。 – Triz 2009-08-26 19:08:21