Почему только NSLog предупреждает меня об использовании спецификатора формата строки% lu для NSUInteger?

По какой-то причине я получаю сообщение об ошибке компиляции, когда пытаюсь сделать следующее:

NSLog(@"row: %lu", indexPath.row);

где строка имеет тип NSUInteger . Я получаю сообщение об ошибке

Преобразование указывает тип 'unsigned long', но аргумент имеет тип 'NSUInteger' (он же 'unsigned int')

Я могу сделать следующее без ошибок компиляции:

NSString * string = [NSString stringWithFormat:@"row: %lu", indexPath.row];

I ' m, используя одну и ту же строку формата и аргумент подстановки в обоих случаях, но почему NSLog пугает, а -stringWithFormat: кажется вполне довольным? Мой компилятор - LLVM 1.6.

19
задан CIFilter 15 February 2011 в 03:04
поделиться