隐式转换失去整数精度' long'到' int'

时间:2014-12-19 13:45:17

标签: objective-c

我有一个问题,在xcode上修复此问题不是没有为什么它发生它说 隐式转换失去整数精度'long'到'int'

[self newScheduleNotification:[ud objectForKey:dateKey] addNotifKey:[sw tag] ];

2 个答案:

答案 0 :(得分:0)

如果将类型long的整数值(L值)指定给类型为int的变量(R值),则会出现此警告。这包括将类型为long的参数传递给类型为int的参数。可能你是在[sw tag]那样做的。

“整数精度丢失”表示传递值的long表达式可能具有int目标无法表示的值。

答案 1 :(得分:0)

notifKey中将NSInteger的类型更改为newScheduleNotification:addNotifKey:。您传递的是NSInteger,这是64位的long和32位的int,但您的方法是要求{{1} }。在两个地方使用int将为您处理类型。您必须使用64位模拟器或设备。如果您使用的是32位SIM卡或设备,则会看到警告消失,因为您将NSInteger传递给寻找int的方法。