这比任何事都更令人烦恼。还有其他人遇到过这个吗?
出于调试目的,我将吐出_fetchedResults
的计数。当我使用unsigned int
时,Xcode会向我发出%u
警告,然后提议将其更改为%lu
。
好的Xcode,当然,请继续前进。
然后它会立即再次发出警告并发出unsigned long
警告,并提议将其返回 %lu
更改为%u
。循环重复。当然,我可以删除NSLog
,但我在测试期间使用它。坦率地说,它比其他任何东西都更烦人。
其他人之前遇到过这种情况?不确定它有多重要,但是我在Xcode 7.3上的部署目标是9.0.x.
答案 0 :(得分:3)
查看此SO主题: Compile NSLog with unsigned int and unsigned long
它说 -
NSLog(@"Array has %ld elements.",(unsigned long)[array count]);
还说 -
对于NSUInteger,最好的方法是
NSLog(@"%lu", (unsigned long)array.count);
,
和NSLog(@"%ld", (long)button.tag);
for NSInteger:32位或64位都没有警告。
答案 1 :(得分:2)
NSLog(@"row: %lu", (unsigned long)[_fetchedResultsController.fetchedObjects count]);
描述
32位平台上的32位无符号整数
64位平台上的64位无符号整数。
Type Format Specifier Cast
---- ---------------- ----
NSInteger %ld long
NSUInteger %lu unsigned long