-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)inIVar-(int)iVar方法,这些可能会隐藏您的版本。反过来,如果你想要一个readwrite属性,你还必须实现 getter 即-(int)iVar

简单地@synthesize iVar=intVariable1;从您的实现中删除该行并放入 implement -(int)iVar

于 2012-06-15T08:16:42.960 回答