Por que uma variável NSInteger precisa ser convertida para longa quando usada como um argumento de formato?
NSInteger myInt = 1804809223;
NSLog(@"%i", myInt); <====
O código acima produz um erro:
Values of type "NSInteger" should not be used as format arguments: add an explicit cast to 'long' instead.
O corretoNSLog
a mensagem é realmenteNSLog(@"%lg", (long) myInt);
Por que preciso converter o valor inteiro de myInt em long se quiser que o valor seja exibido?