我在总结两个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/