ho la seguente riga di codice nella mia applicazione Mac OS X:NSLog dandomi avvertimenti che non sono correggibili
NSLog(@"number of items: %ld", [urlArray count]);
E ottengo l'avvertimento: "Format specifica di tipo 'lunga', ma l'argomento è di tipo 'NSUInteger' (aka 'unsigned int')"
Tuttavia, se cambio il mio codice a:
NSLog(@"number of items: %u", [urlArray count]);
ottengo l'avvertimento:
formato specifica tipo 'unsigned int', ma l'argomento è di tipo 'NSUInteger' (aka 'unsigned long')
Allora lo cambio a
NSLog(@"number of items: %u", [urlArray count]);
ma ottengo l'avvertimento: specifica il formato digita 'unsigned long' ma l'argomento ha tipo 'NSUInteger' (alias 'unsigned int')
Come posso impostare il mio NSLog in modo che non generi un avviso? Se seguo i suggerimenti di Xcode, entro in un ciclo infinito di modifica dell'identificatore di formato, ma gli avvertimenti non spariscono mai.
Questo sembra piuttosto inutile, ma lo fa chiarire gli avvertimenti. – Jackson
Non sono sicuro che faccia la differenza, ma probabilmente dovresti fare lo stesso tipo dello specificatore di formato. Quindi (unsigned long) sarebbe% lu, o (long) sarebbe% ld –
@darren fa la differenza, non farlo è un comportamento indefinito. –