0

私はobjective-cにまったく慣れておらず、現在学習プロセスにあります。プロパティaの親クラスAがあり、サブクラスBのプロパティにアクセスしようとしています。プロパティにアクセスして次のような値を割り当てるとこれ

[self a:3];

それは文句を言いませんBの目に見える@interfaceはセレクターを宣言しません

しかし、私がそれにアクセスして、intsomething = [self a];のように、そこから読み取る場合。その後、それは文句を言いません。

プロパティにアクセスするための推奨される方法は、を使用することです。オブジェクトとプロパティの間ですが、技術的にはメッセージスタイルの呼び出しで機能するはずです。しかしそうではないので、これについて教えてください。

私のコードはこんな感じです

// Test class A
@interface A : NSObject

@property int a;

-(void) initMe; 

@end

@implementation A

@synthesize a;

-(void) initMe
{
 NSLog(@"I am in A");
}
@end

//-------------------------

@interface B : A

-(void) initEx; 

@end

@implementation B

-(void) initEx
{
    // This line gives a problem as I mentioned above
    [self a:3];
    NSLog(@"In child class B");
}

@end

///-----------------------
4

1 に答える 1

3

[self a:3];間違った構文です。setterメソッドを呼び出す場合は、次のようにする必要があります。

[self setA:3];
于 2012-06-11T12:08:54.277 に答える