我无法弄清楚这一点。我需要一些帮助。
这是在我的viewController.h文件中:
@property (nonatomic, assign) int count;
它保存用户显示特定屏幕的次数。 (调用viewDidLoad方法)。
每次viewDidLoad方法运行时,我都会调用此方法来增加计数:
- (void)returnCount{
NSNumber *num = [NSNumber numberWithInt:self.count];
NSLog(@"%@",num);
if ([num intValue] == 0) {
self.count = 0;
NSLog(@"This worked and now the nil number is :%i",self.count);
}else{
self.count = self.count + 1;
NSLog(@"This worked and now the 0 number is :%i",self.count);
}
self.count在条件语句中的代码中使用(如果self.count == 0)然后执行某些操作,if(self.count> 1)然后执行其他操作。
每次调用它时,self.count保持为0.如何正确地将其递增一个?
谢谢
答案 0 :(得分:0)
你的代码对我没有意义......
您的代码的简化版本是
if (self.count == 0) {
}else{
self.count += 1;
}
如果self.count
为0则不执行任何操作,除非您将其设置为其他位置的非零值,否则它将保持为0。
删除if
支票,仅保留self.count += 1;
或self.count = 1
方法中的init
答案 1 :(得分:0)
什么时候你期望发生增量?你的代码:
NSNumber *num = [NSNumber numberWithInt:self.count];
NSLog(@"%@",num);
if ([num intValue] == 0) {
self.count = 0;
NSLog(@"This worked and now the nil number is :%i",self.count);
}else{
self.count = self.count + 1;
NSLog(@"This worked and now the 0 number is :%i",self.count);
}
其相关部分可以更简单地写成:
if (self.count == 0) {
self.count = 0;
}else{
self.count = self.count + 1;
}
您认为self.count = self.count + 1
会在什么场合进行?如果count
为零,则它将保持为零。根据与对象分配有关的规则,它最初为零。因此,根据您发布的代码,它始终为零。
答案 2 :(得分:0)
问题是每次重新创建视图控制器时(和viewDidLoad运行),计数都将重置为0。你应该创建一个静态int,可以这样做,
- (void)viewDidLoad {
static int count = 0;
[super viewDidLoad];
count +=1;
NSLog(@"%d",count);
}
静态int仅在运行的生命周期中初始化一次,并且即使控制器在您离开时取消分配,也会保留其值。即使应用程序进入后台,它也会保留此值。只有在应用关闭时才会重置。