我在一個程序中收到類型錯誤警告,而不是其他,但代碼看起來對我來說是一樣的。NSInteger和int類型警告看起來不一致
首先,作爲Obj C/IOS的新手,我認爲我應該使用NSInteger而不是int。
這是什麼工作; (代碼從斯坦福193P當然,這表明我沒有警告)
(我曾試圖只顯示摘要,以保持它的簡單。)
CardMatchingGame.m
@interface CardMatchingGame()
property (nonatomic, readwrite) NSInteger score;
...
CardGameViewController.m
interface CardGameViewController()
@property (weak, nonatomic) IBOutlet UISlider *resultsSlider;
....
self.scoreLabel.text = [NSString stringWithFormat:@"Score: %d", self.game.score];
....
int sliderValue = lroundf(self.resultsSlider.value);
這裏是我的代碼模擬其他遊戲。它看起來是一樣的我,但我得到的類型onversion警告:
BullsEyeGame.m
@interface BullsEyeGame()
@property (nonatomic, readwrite) NSInteger score;
....
ViewController.m
@interface ViewController()
@property (weak, nonatomic) IBOutlet UISlider *sliderValue;
....
self.scoreLabel.text = [NSString stringWithFormat: @"%d", self.game.score]; //NSInteger should not be used as format aguments; add an explicit cast to unsigned long.
int slider = lroundf(self.sliderValue.value); //Implicit conversion warning here
缺少什麼我在這裏?
我理解的關鍵洞在哪裏?
也許第一個不支持arm64,第二個是。或者第二個項目啓用了更多警告。 – rmaddy
另外,請嘗試清潔和重建,您可能會看到一些警告已被「忘記/忽略」。 –