我得到这样的警告以下行的代码:的Xcode警告:格式指定型“长”但参数的类型为“INT _Nullable”
NSLog(@"selected segment: %li", _segmentControl.selectedSegmentIndex);
酒店selectedSegmentIndex
是NSInteger
类型。
如果我改变格式%i
我得到以下警告:
Format specifies type 'int' but the argument has type 'long _Nullable'
是否有可空类型的任何新的格式说明或者这只是一个错误在Xcode 7?
那么这会使警告消失,但iOS在64位上已经有一段时间了,而我不记得必须在NSLog中输入参数。过去,将格式说明符从%i更改为%li就足够了。 – bbjay
@bbjay请修改我更新的答案,我在这里粘贴了苹果公司的代码片段。他们也这样做。警告总是在那里。你可能编译的主要是64位,所以你没有看到这个警告。如果你已经编译过32位,你以前就会看到它。唯一的区别是,在Xcode 7中,警告始终可见,不依赖于目标架构。 – Vive
确实。原因是架构的构建设置默认为'ARCHS =“$(ARCHS_STANDARD)”;'Xcode 7中的值为'armv7,arm64'。你能在你的答案中包含这些信息吗?那么我会很乐意接受它。 – bbjay