J'ai un modèle de base de données mis en place, avec deux entités dans une relation un-à-plusieurs (éléments, et pour chaque élément, il peut y avoir plusieurs ResetDates). Je suis assez confiant que le modèle est correctement configuré.Problème avec les dates de données de base
Je peux ajouter de nouveaux éléments et, dans ce cas, ajouter un nouveau ResetDate (en utilisant la date actuelle, avec [NSDate date]
). Je peux récupérer et afficher des éléments. Ce qui me dérange, c'est récupérer et afficher les ResetDates.
Mise à jour: Cela fonctionne maintenant, merci beaucoup aux répondeurs ci-dessous. Voici le code en question:
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];
Ahhhhh, d'accord, d'accord. Cela fait * beaucoup * plus de sens maintenant - c'est un objet 'Reset', pas un' NSDate'. Un problème: 'resetDate' est une propriété' @ 'de la classe 'Reset', pas une méthode. Je ne suis pas très bon avec la syntaxe sur ces choses encore ... essayé '[[sortedResets lastObject] .resetDate]', mais ce n'est clairement pas ce que je cherche ... – Triz
@Triz depuis 'resetDate' est déclaré comme '@ property', votre objet Reset * will * aura les méthodes' resetDate' et 'setResetDate:'. C'est tout le point de la syntaxe '@ property'. –
@Dave: Droit, d'accord. Je reçois un avertissement sur cette ligne, cependant, qu'il n'y a pas de méthode 'resetDate' déclarée.Je l'ai dans l'en-tête de la classe 'Reset', comme' @property (nonatomic, conserver) NSDate * resetDate, ', et dans la mise en œuvre' @dynamic resetDate; '. Devrait-il être '@ synthesize' au lieu de' @ dynamic'? Ce dernier est la façon dont le modèle CoreData j'ai commencé à faire des choses, alors je l'ai gardé. – Triz