-1

.hファイル内

@interface ViewController : UIViewController {
            @private int intVariable1;
    }
    @property (readwrite,assign) int iVar;

    -(void)Callme;
    @end

.mファイル内

@implementation ViewController
@synthesize iVar=intVariable1;

-(void)Callme
{
        NSLog(@”Callme called”);
}

-(void)setIVar:(int)inIVar
{
        intVariable1 = inIVar;
        [self Callme];
}
@end

変数の状態が変化したときに「Callme」関数を呼び出すようにこのコードを実装しましたが、viewDidで関数setIVarを呼び出すと、機能しません。これを呼び出すアイデアはありますか?私が呼んでいた方法

[self setIVar:3];
4

1 に答える 1

0

getter/setter 関数に独自の実装を提供したい場合は、実装でディレクティブを使用しないでください。@synthesizeこれにより独自の-(void)setIVar:(int)inIVarand-(int)iVarメソッドが生成され、これらによってバージョンが非表示になる場合があります。次に、readwriteプロパティが必要な場合は、getter ie も実装する必要があります-(int)iVar

実装から単純に@synthesize iVar=intVariable1;行を削除し、実装も配置します-(int)iVar

于 2012-06-15T08:16:42.960 に答える