我在总结两个NSInteger时遇到问题,我尝试使用简单的int却找不到答案。我的头文件上有这个:

@interface ViewController : UIViewController {
NSMutableArray *welcomePhotos;
NSInteger *photoCount;        // <- this is the number with the problem
//static int photoCount = 1;
}

在我的实现领域中,我有:
-(void)viewDidLoad{
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

    photoCount = 0;
    welcomePhotos = [NSMutableArray array];


    int sum = photoCount + 1;

    NSLog(@"0 + 1 = %i", sum);

}

las NSLog始终打印 0 + 1 = 4

另外,如果这样做:
if (photoCount < [welcomePhotos count]){
    photoCount++;
    NSLog(@"%i", photoCount);
}else{
    photoCount = 0;
}

我几次得到: 4,8,12

所以它跳过了四个,但我不明白为什么。

最佳答案

您正在打印一个指针对象,我相信您已经声明它为

NSInteger* photocount;

尝试将其更改为
int photocount;

在整数上执行变量++将增加一个指针的大小,该指针在iOS上为4个字节。

关于objective-c - 求和两个NSInteger给出不正确的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14444620/

10-13 03:50