对于我对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;
}
答案 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;