如何在多次调用后从方法中提取静态int

时间:2011-10-04 16:33:44

标签: objective-c

对于我对Objective-C的初学者级别的独立研究,我被要求在一个类中添加一个计数器,这样每次使用一个方法时,它就会++。但是,我把它误解为“每次调用方法的方法时,++。”在意识到如何做我所要求的事情之后,我思考如何设计一种方法,除了调用返回的方法之外还会返回一个计数器。如果我除了变量++之外还要使用static int;在每次调用方法时,如何在主程序中提取变量值?

评论中的示例代码:

-(Fraction *) add: (Fraction *) f {
    static int fractaddcount;
    fractaddcount++;
    Fraction *result = [[Fraction alloc] init];
    result.numerator = numerator * f.denominator + denominator * f.numerator;
    result.denominator = denominator * f.denominator;
    return result;
}

1 个答案:

答案 0 :(得分:1)

使fractaddcount成为实例变量并在init方法中将其初始化为0。然后可以通过类中的其他方法访问它。

此外,如果你使property其他类可以访问它。您甚至可以在.h文件中只读property并在.m文件中读/写(类扩展名)。

实施例:
在.h:

@property (non atomic, readonly, assign) int fractaddcount;
在.m中的


在课程延期中:

@Interface TheClassName ()

@property (non atomic, readwrite, assign) int fractaddcount;

@end

在实施中:

@synthesize fractaddcount;
init中的

:这有点可选,因为当实例化类时,ivars被清除为nil(0)。

fractaddcount = 0;
你的代码中的

self.fractaddcount = self.fractaddcount + 1;