Скомпилируйте NSLog с unsigned int и unsigned long на iOS и OSX без предупреждения
На iOS NSUInteger
это unsigned int
на OSX это unsigned long
, Как я могу сделать заявление о печати, как
NSLog(@"Array has %d elements.",[array count]);
компилировать на обеих платформах без предупреждения? Я могу, конечно, использовать #ifdef #else #endif
построить, но это добавит 4 строки кода. Я также мог бы привести возвращаемое значение к unsigned int. Есть ли более короткое решение?
2 ответа
Решение
Как насчет броска к большему из двух?
NSLog(@"Array has %ld elements.",(unsigned long)[array count]);
В iOS нет предупреждений, и я думаю, что в OSX это не работает.
Как насчет броска к большему из двух?
NSLog(@"Array has %ld elements.",(unsigned long)[array count]);
No warning in iOS, and I think it's a no-op in OSX.