Outre que votre setter devrait prendre NSDate
par pointeur (toutes les instances de type classe sont passés par le pointeur en Objective-C), vous appelez récursive le poseur:
self.currentDate = foo
résultats dans [self setCurrentDate:foo]
être appelé.
Correctement, il devrait regarder par ex. comme celui-ci (en supposant une propriété nonatomic, retain
):
- (void)setCurrentDate:(NSDate *)newDate {
if (currentDate != newDate) {
[currentDate release];
[newDate retain];
currentDate = newDate;
[self updateView];
}
}
cette méthode nom de rechange différent du poseur de sorte que vous pouvez utiliser le setter synthétisé:
- (void)updateDate:(NSDate *)newDate {
self.currentDate = newDate;
[self updateView];
}
qui appellerait récursive le poseur. –
Merci, c'est correct, j'utilise déjà une propriété avec synthétiser et relâcher comme il se doit. – Mohammed
@Mohammed: Avez-vous testé cela avant d'accepter? Cela se traduira par '-setCurrentDate:' étant appelé récursivement et finalement tomber en panne avec un 'EXC_BAD_ACCESS' ou similaire. –