Voici ma classe personnalisée:Obj-C: appeler la libération/dealloc provoque EXC_BAD_ACCESS
PolygonShape : NSObject {
int numberOfSides;
int minimumNumberOfSides;
int maximumNumberOfSides;
}
Ma méthode init personnalisée:
- (id)initWithNumberOfSides:(int)sides minimumNumberOfSides:(int)min maximumNumberOfSides:(int)max {
if (self = [super init]) {
[self setMinimumNumberOfSides:min];
[self setMaximumNumberOfSides:max];
[self setNumberOfSides:sides];
}
return self;
}
Ma méthode dealloc:
- (void) dealloc {
NSLog("Calling dealloc");
[super dealloc];
}
Mon exemple de code qui plante:
PolygonShape *shape1 = [[PolygonShape alloc] initWithNumberOfSides:6 minimumNumberOfSides:5 maximumNumberOfSides:9];
[shape1 release];
J'ai alloué un PolygonShape en augmentant le nombre de retainer de 1, puis en le relâchant, je le décrémenterais à 0 et j'appellerai dealloc, en imprimant ce message à NSLog mais je viens d'obtenir EXC_BAD_ACESS. Je suis en mesure d'accéder et de modifier les champs de mon objet après l'avoir créé afin que tout fonctionne jusqu'à ce qu'il fonctionne. Merci beaucoup pour l'aide!
Avez-vous une piscine autorelease correcte? (la seule idée que j'ai actuellement!) – ShinTakezou
N'oubliez pas de vérifier l'affichage de dreamlax comme la bonne réponse. –