コアデータモデルが設定されていて、1対多リレーションシップの2つのエンティティ(アイテム、各アイテムごとに複数のResetDateがあります)があります。私はモデルが正しく設定されていると確信しています。コアデータのトラブル日付
新しいアイテムを追加することができます。新しいアイテムを追加するには、新しいリセット日を追加してください(現在の日付は[NSDate date]
です)。アイテムを取得して表示することができます。私が問題を抱えているのは、ResetDatesを取得して表示することです。
を更新しました:これは今、以下の回答者に感謝しています。
NSDate *oldDate = sortedResets[0];
で:
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];
ああ、大丈夫です。これは今や*もっと大事なことです - それは 'NSDate'ではなく' Reset'オブジェクトです。 1つの問題: 'resetDate'はメソッドではなく' Reset'クラスの '@ property'です。私はこれらのことについての文法はあまり良くはありません... '[[sortedResets lastObject] .resetDate]'を試みましたが、それは明らかに私が探しているものではありません... – Triz
@Triz since 'resetDate' '@ property'として宣言されている場合、あなたのResetオブジェクト*は' resetDate'と 'setResetDate:'メソッドを持ちます。これが '@ property'構文の全体のポイントです。 –
@Dave:そうです、大丈夫です。しかし、その行には、resetDateメソッドが宣言されていないという警告が表示されています。'@property(nonatomic、retain)NSDate * resetDate;'と '@dynamic resetDate;'の実装では、 'Reset'クラスのヘッダーにあります。 '@dynamic'ではなく' @ synthesize'でなければなりませんか?後者は、私が始めたCoreDataテンプレートが何をしているかということです。 – Triz