【发布时间】:2017-06-08 14:57:06
【问题描述】:
我有一个方法正在尝试更新到对我的应用程序的 64 位支持。我有很多这样的warnings。
问题在于以下示例。我收到警告:
隐式转换丢失整数精度 NSInteger 到 int
- (int) aMethod {
NSUserDefaults *u = [NSUserDefaults standardUserDefaults];
return [u integerForKey:@"someKey"];
}
如果我将返回类型更改为 NSInteger 我得到
aMethod int 与 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
标签: ios objective-c