Я не могу понять, почему мой код получения и установки не работает.В некотором примере кода, который я просматривал:
- (NSArray *)sushiTypes {
return _sushiRolls;
}
- (void)setSushiTypes:(NSArray *)sushiRolls {
[sushiRolls retain];
[_sushiRolls release];
_sushiRolls = sushiRolls;
}
Затем в:
- (void)viewDidLoad {
[super viewDidLoad];
self.sushiTypes = [[NSArray alloc]initWithObjects:@"...]autorelease];
}
Все время это работало, но свойство для sushiTypes
никогда не было объявлено.Я (вроде) понимаю, как это работает, поскольку он работает так же, как метод установки / получения, независимо от того, был ли он синтезирован или нет.
Но вот мой код, и я получаю ошибку компилятора, запрашивающую свойство,Я что-то пропустил?
#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
Скриншот этого кода и ошибка в Xcode