Ich kann nicht herausfinden, warum mein Getter- und Setter-Code nicht funktioniert. In einigen Beispiel-Code, den ich ging über:
- (NSArray *)sushiTypes {
return _sushiRolls;
}
- (void)setSushiTypes:(NSArray *)sushiRolls {
[sushiRolls retain];
[_sushiRolls release];
_sushiRolls = sushiRolls;
}
Dann in:
- (void)viewDidLoad {
[super viewDidLoad];
self.sushiTypes = [[NSArray alloc]initWithObjects:@"...]autorelease];
}
Das hat die ganze Zeit funktioniert, aber eine Eigenschaft für sushiTypes
wurde nie erklärt. Ich verstehe (irgendwie), wie das funktioniert, da es das gleiche wie ein Setter/Getter funktioniert, unabhängig davon, ob es synthetisiert wurde oder nicht.
Aber hier ist mein Code, und ich erhalte einen Compilerfehler, der nach einer Eigenschaft fragt. Habe ich etwas übersehen?
#import <Foundation/Foundation.h>
@interface Temp0 : NSObject {
NSNumber *x1;
}
-(NSNumber *)x1;
-(void)setx1:(NSNumber *)x;
@end
//
#import "Temp0.h"
@implementation Temp0
-(NSNumber *)x1 {
return x1;
}
-(void)setx1:(NSNumber *)x {
[x retain];
[x1 release];
x1 = x;
}
-(id)init
{
self.x1 = [[NSNumber alloc]initWithInt:1]; // Error on this line:
// Setter method is needed to assign to object using property assignment syntax
[super init];
}
@end