增量时NSInteger疯狂值

时间:2015-05-28 05:22:27

标签: ios objective-c xcode6 nsinteger

我一直在寻找这个问题很长一段时间,所以我决定问一下。我真的不知道发生了什么。

我有一个tableView,当我选择一个单元格时,我希望它转到另一个视图控制器。到目前为止一切都很好,事情是我不想继续添加屏幕,所以我试图使用计数器来检查我是否已经使用了正常的segue一次,所以我可以使用unwind方法。考虑到这一点,这是我的代码片段

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSInteger antcounter;

if (indexPath.row == 0 && indexPath.section == 0 && antcounter < 2) {
    [self performSegueWithIdentifier:@"ToAntMan" sender:self];
    antcounter ++;
    NSLog(@"%tu", antcounter);
} else if (indexPath.row == 0 && indexPath.section == 0 && antcounter > 2) {
    NSLog(@"%tu", antcounter);
    [self performSegueWithIdentifier:@"unwindToAntMan" sender:self];
    NSLog(@"YES");

在第一个NSLog,我得到一个值2 在第二个NSLog,我获得了1732的疯狂值,我真的无法理解。我在做什么愚蠢的事?

1 个答案:

答案 0 :(得分:0)

没有初始化的NSInteger不保证为零,因为它是一个本地自动变量,其值是不确定的。如果你想让它为零。

要么

NSUInteger antcounter = 0;

static NSUInteger antcounter;

除此之外,您可以在头文件中声明Global,如下所示

@property (nonatomic, assign) NSInteger antcounter;

希望这会对你有所帮助。