0

我一直在阅读最新版本的 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 都没有工作......关于我在这里没有掌握的任何线索?

编辑:

我的主要问题是,如果我声明一个@propertyXcode 是否会自动生成 getter、setter 和实例变量(带有前导下划线,_myVar)而无需使用@synthesize?这是我在 stackoverflow 上读到的,我不确定它是否真的有效。

4

1 回答 1

1

几乎所有东西看起来都应该工作。无效的目标-C 的一行是

[self setRealPart] = aRadius * cos(aPhase);

而应该是

[self setRealPart:aRadius * cos(aPhase)];

那可能是您看到的错误吗?

于 2012-10-23T02:06:22.237 回答