0

Xcodeの最新バージョンでは、合成を使用してivar、ゲッター、セッターを生成する必要がないことを読んでいます。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がゲッター、セッター、およびインスタンス変数(先頭にアンダースコア_myVarを含む)を使用せずに自動的に生成することを宣言した場合、 @synthesize?これは私がstackoverflowで読んだものであり、実際に機能するかどうかはわかりません。

4

1 に答える 1

1

ほとんどすべてが機能するように見えます。有効なObjective-Cではない1行は

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

代わりに

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

それはあなたが見ているエラーでしょうか?

于 2012-10-23T02:06:22.237 に答える