unsigned int и unsigned long Xcode предупреждений в NSLogs
Это больше раздражает, чем что-либо еще. Кто-нибудь еще сталкивался с этим?
В целях отладки я выкладываю счет _fetchedResults
, Xcode дает мне unsigned int
предупреждение, когда я использую %u
, а затем предлагает изменить его на %lu
,
ОК XCode, конечно, идти вперед.
Затем он немедленно лает на меня снова с unsigned long
предупреждение и предлагает поменять его обратно %lu
к %u
, И цикл повторяется. Конечно, я могу просто удалить NSLog
, но я использую его во время тестирования. И, честно говоря, это более раздражает, чем все остальное.
Кто-нибудь еще сталкивался с этим раньше? Не уверен, насколько это важно, но я нахожусь на Xcode 7.3 с целью развертывания 9.0.x.
2 ответа
Проверьте этот SO поток: скомпилируйте NSLog с unsigned int и unsigned long
Это говорит-
NSLog(@"Array has %ld elements.",(unsigned long)[array count]);
А также говорит-
Лучший способ это
NSLog(@"%lu", (unsigned long)array.count);
для NSUInteger,
а такжеNSLog(@"%ld", (long)button.tag);
для NSInteger: нет предупреждений ни в 32-битной, ни в 64-битной.
NSLog(@"row: %lu", (unsigned long)[_fetchedResultsController.fetchedObjects count]);
Описание
32-разрядное целое число без знака на 32-разрядных платформах
64-разрядное целое число без знака на 64-разрядных платформах.
Type Format Specifier Cast
---- ---------------- ----
NSInteger %ld long
NSUInteger %lu unsigned long