我一直在阅读使用最新版本的Xcode你甚至不需要使用synthesize来生成ivar,getters和setter,Xcode本身会为你处理这个并为你创建类似_youIvarName的东西,但是在尝试之后这个我无法完成这项工作。
即使我声明我的属性,当我尝试访问这些_yourVarName时,Xcode表示这样的变量不存在。
例如
标题文件:
@interface ComplexNumber : NSObject
@property double realPart;
@property double imaginaryPart;
实现:
#import "ComplexNumber.h"
@implementation ComplexNumber
-(double)modulus
{
return sqrt(_realPart*_realPart + _imaginaryPart*_imaginaryPart);
}
-(void)setRadius:(double)aRadius phase:(double)aPhase
{
[self setRealPart] = aRadius * cos(aPhase);
self.imaginaryPart = aRadius * sin(aPhase);
}
-(void)print
{
NSLog(@"%g + %gi", realPart, imaginaryPart);
}
这些试图都没有尝试访问那些_yourIvar工作......关于我在这里没有抓到的任何线索?
编辑:
我的主要问题是,如果我宣布一个@property
是Xcode会自动生成getter,setter和实例变量(使用前导下划线,_myVar)而不需要使用@synthesize
?这是我在stackoverflow上阅读的内容,我不确定它是否真的有用。
答案 0 :(得分:1)
几乎所有东西看起来都应该有效。一行无效的目标-C是
[self setRealPart] = aRadius * cos(aPhase);
应该是
[self setRealPart:aRadius * cos(aPhase)];
这可能是你看到的错误吗?