0

これはプロパティ宣言です:

@property (atomic, weak) zooView* zooView;

これは私のカスタム実装です:

__weak zooView* _zooView;

-(zooView*) getZooView
{
    return _zooView;
}

-(void) setZooView:(btBasePinView*)inZooView
{
    _zooView = inZooView;
}

同じクラスの別のスレッドでこのプロパティにアクセスしています。

[self.zooView imgLoadComplete:self.fullImg];

何らかの理由で、self.zooView にアクセスすると、nil オブジェクトが返されます。カスタム セッター \ ゲッターを削除すると、すべて正常に動作します。

その理由は何ですか?

ありがとう

4

1 に答える 1

1

zooViewのゲッターは、-getZooViewではなく-zooViewである必要があります。

グローバルの代わりにインスタンス変数を使用するには、それを合成するだけです。

@synthesize zooView = _zooView;

-(zooView*) zooView
{
    return _zooView;
}

-(void) setZooView:(btBasePinView*)inZooView
{
    _zooView = inZooView;
}

これにより、指定したゲッター/セッターでivar_zooViewが定義されます。

于 2012-06-11T21:05:10.337 に答える