J'ai ce code:Problème avec la libération d'un objet
Entry.h
#import <Foundation/Foundation.h>
@interface Entry : NSObject {
id object;
SEL function;
}
@property (retain) id object;
@property (assign) SEL function;
-(Entry*) initWithObject:(id)object selector:(SEL)function;
@end
Entry.m
#import "Entry.h"
@implementation Entry
@synthesize object;
@synthesize function;
-(Entry*) initWithObject:(id)obj selector:(SEL)sel {
self = [super init];
[self setObject:obj];
[self setFunction:sel];
return self;
}
-(void) dealloc {
[super dealloc];
if ([self object] != nil)
[[self object] release];
}
@end
Et quand je fais ceci:
Entry *hej = [Entry alloc];
[hej release];
je reçois:
objc[2504]: FREED(id): message object sent to freed object=0xf5ecd0
Program received signal: “EXC_BAD_INSTRUCTION”.
Qu'est-ce que je fais mal?
(Et cet insert chose de code au travail ne marche pas de débordement de pile, à moins que je fais quelque chose de mal et que vous n'êtes pas censé cliquer sur « exemple de code » puis coller.)
Vous avez pas initié l'objet hej. – mkb
la 'chose de code' fonctionne bien si vous collez d'abord le code dans le champ d'édition, puis sélectionnez le code que vous souhaitez marquer comme code, puis cliquez sur le bouton 'code' ... (moi confondu aussi) – kent
') Les délimiteurs sont utilisés pour les polices monospace en ligne. Les échantillons de code doivent tous être indentés avec 4 espaces au début de chaque ligne, selon les règles de Markdown. J'ai corrigé le formatage de vos échantillons de code afin qu'il ne s'agisse pas d'un énorme bloc de défilement. –