- (NSArray *)sushiTypes { return _sushiRolls;}- (voID)setSushiTypes:(NSArray *)sushiRolls { [sushiRolls retain]; [_sushiRolls release]; _sushiRolls = sushiRolls;}
然后在:
- (voID)vIEwDIDLoad { [super vIEwDIDLoad]; self.sushiTypes = [[NSArray alloc]initWithObjects:@"...]autorelease];}
整个过程都有效,但是寿司类型的属性从未被声明过.我(有点)了解它是如何工作的,因为它与setter / getter的工作方式相同,无论它是否合成.
但这是我的代码,我得到一个编译器错误,要求一个属性.我错过了什么?
#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
Screenshot of this code and the error in Xcode
解决方法 在setter方法名称中大写属性的第一个字母是标准的.正如你所拥有的:-(voID)setSushiTypes:(NSArray *)sushiRolls
所以setX1:是预期的方法签名.
-(voID)setX1:(NSNumber *)x1;总结
以上是内存溢出为你收集整理的objective-c – 使用点语法的编译器错误“需要setter方法” – 定义了setter全部内容,希望文章能够帮你解决objective-c – 使用点语法的编译器错误“需要setter方法” – 定义了setter所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)