NSLogs 中的 unsigned int 和 unsigned long Xcode 警告
unsigned int and unsigned long Xcode warnings in NSLogs
这比什么都烦人。还有其他人 运行 穿过这个吗?
出于调试目的,我吐出 _fetchedResults
的计数。 Xcode 在我使用 %u
时给我一个 unsigned int
警告,然后提出将其更改为 %lu
。
好的Xcode,好的,请继续。
然后它立即再次对我狂吠并发出 unsigned long
警告并提议将其 返回 %lu
更改为 %u
。并且循环重复。当然,我可以只删除NSLog
,但我在测试期间使用它。坦率地说,这比什么都烦人。
其他人 运行 之前有过这个问题吗?不确定它有多重要,但我使用的是 Xcode 7.3,部署目标是 9.0.x。
查看此 SO 线程:
Compile NSLog with unsigned int and unsigned long
它说-
NSLog(@"Array has %ld elements.",(unsigned long)[array count]);
而且还说-
The best way is NSLog(@"%lu", (unsigned long)array.count);
for NSUInteger,
and NSLog(@"%ld", (long)button.tag);
for NSInteger: no warnings in either 32 bit or 64 bit.
NSLog(@"row: %lu", (unsigned long)[_fetchedResultsController.fetchedObjects count]);
描述
a 32-bit unsigned integer on 32-bit platforms
64-bit unsigned integer on 64-bit platforms.
Type Format Specifier Cast
---- ---------------- ----
NSInteger %ld long
NSUInteger %lu unsigned long
这比什么都烦人。还有其他人 运行 穿过这个吗?
出于调试目的,我吐出 _fetchedResults
的计数。 Xcode 在我使用 %u
时给我一个 unsigned int
警告,然后提出将其更改为 %lu
。
好的Xcode,好的,请继续。
然后它立即再次对我狂吠并发出 unsigned long
警告并提议将其 返回 %lu
更改为 %u
。并且循环重复。当然,我可以只删除NSLog
,但我在测试期间使用它。坦率地说,这比什么都烦人。
其他人 运行 之前有过这个问题吗?不确定它有多重要,但我使用的是 Xcode 7.3,部署目标是 9.0.x。
查看此 SO 线程: Compile NSLog with unsigned int and unsigned long
它说-
NSLog(@"Array has %ld elements.",(unsigned long)[array count]);
而且还说-
The best way is
NSLog(@"%lu", (unsigned long)array.count);
for NSUInteger,
andNSLog(@"%ld", (long)button.tag);
for NSInteger: no warnings in either 32 bit or 64 bit.
NSLog(@"row: %lu", (unsigned long)[_fetchedResultsController.fetchedObjects count]);
描述
a 32-bit unsigned integer on 32-bit platforms
64-bit unsigned integer on 64-bit platforms.
Type Format Specifier Cast
---- ---------------- ----
NSInteger %ld long
NSUInteger %lu unsigned long