我一直在阅读最新版本的 Xcode,你甚至不需要使用 synthesize 来生成 ivar、getter 和 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 上读到的,我不确定它是否真的有效。