我一直在寻找这个问题很长一段时间,所以我决定问一下。我真的不知道发生了什么。
我有一个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的疯狂值,我真的无法理解。我在做什么愚蠢的事?
答案 0 :(得分:0)
没有初始化的NSInteger不保证为零,因为它是一个本地自动变量,其值是不确定的。如果你想让它为零。
要么
NSUInteger antcounter = 0;
或
static NSUInteger antcounter;
除此之外,您可以在头文件中声明Global,如下所示
@property (nonatomic, assign) NSInteger antcounter;
希望这会对你有所帮助。