J'ai cru comprendre @bien et @synthétiser, mais j'ai fait quelques tests et je n'arrive pas à comprendre pourquoi la ci-dessous (ce que je pensais était cassé) code fonctionne.
Comme vous pouvez le voir, il n'y a pas de variable d'instance qui correspond au nom de la propriété. N'Objective-C en quelque sorte de créer une variable d'instance, s'il ne trouve pas une variable d'instance avec le même nom et de même type?
En-tête:
#import <Foundation/Foundation.h>
@interface AddressCard : NSObject {
}
@property (copy, nonatomic) NSString *name;
-(void) print;
@end
Mise en œuvre:
#import "AddressCard.h"
@implementation AddressCard
@synthesize name;
-(void) print {
NSLog(@"Name=%@", self.name);
}
-(void) dealloc {
[name release];
[super dealloc];
}
@end
Test:
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
AddressCard *ac = [[AddressCard alloc] init];
ac.name = @"Brandon";
[ac print];
[ac release];
[pool drain];
return 0;
}