我有一個問題,總結兩個NSInteger,我嘗試過簡單的int但無法找到答案。我有這個在我的頭文件:總結兩個NSInteger給出不正確的結果
@interface ViewController : UIViewController {
NSMutableArray *welcomePhotos;
NSInteger *photoCount; // <- this is the number with the problem
//static int photoCount = 1;
}
的對我實施FIEL我:
-(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);
}
拉斯維加斯的NSLog始終打印0 + 1 = 4
而且如果要是做:
if (photoCount < [welcomePhotos count]){
photoCount++;
NSLog(@"%i", photoCount);
}else{
photoCount = 0;
}
我幾次得到:4,8,12。
因此,它正在滑行四,但我不明白爲什麼。
的問題是,你聲明'photoCount'是一個指向'NSInteger'。請記住,'NSInteger'是一個有符號整數的typedef(取決於系統的32位或64位)。 –
也許是因爲NSInteger是一個特殊的int,它根據平臺的位數(32位或64位)在運行時取不同的值。 –