我有一個方法,我試圖更新到64位支持我的應用程序。我有很多這些warnings
。正確更新一個32位方法到64位支持
問題出在下面的例子。我得到警告:
隱式轉換失去整數精度NSInteger的爲int
- (int) aMethod {
NSUserDefaults *u = [NSUserDefaults standardUserDefaults];
return [u integerForKey:@"someKey"];
}
如果我改變返回類型NSInteger
我得到
實施相互矛盾的返回類型aMethod int vs NSInteger aka long
-(NSInteger) aMethod {
NSUserDefaults *u = [NSUserDefaults standardUserDefaults];
return [u integerForKey:@"someKey"];
}
我試圖鑄造返回類型
return (NSInteger)[u integerForKey:@"someKey"];
或
return (long)[u integerForKey:@"someKey"];
但我不能讓錯誤消失,除非我將它轉換爲(INT)
return (int)[u integerForKey:@"someKey"];
我已經閱讀了許多SO問題,但我似乎無法得到一個很好的答案。
什麼是更新此方法的正確方法?
當您使用' - (NSInteger)aMethod {'時,您是否也更新.h文件中的簽名? (...或任何其他宣佈的地方。) –
你說得對。我忘了更新我的.h文件* facepalm * –