Ja, das ist nervig. Es ist eine 32/64 Bit Sache, glaube ich. Am einfachsten ist es, einfach zu lange zu werfen:
%Vor%Eine andere Option wird hier erwähnt: NSInteger und NSUInteger in einer gemischten 64bit / 32bit-Umgebung
%Vor%Ich habe die folgende Codezeile in meiner Mac OS X-Anwendung:
%Vor%Und ich bekomme die Warnung: "Format gibt den Typ 'long' an, aber das Argument hat den Typ 'NSUInteger' (aka 'unsigned int')"
Wenn ich jedoch meinen Code in:
ändere %Vor%Ich bekomme die Warnung:
Format gibt den Typ 'unsigned int' an, aber das Argument hat den Typ 'NSUInteger' (alias 'unsigned long')
Also ändere ich es zu
%Vor%aber ich bekomme die Warnung: Format gibt den Typ 'unsigned long' an, aber das Argument hat den Typ 'NSUInteger' (aka 'unsigned int')
Wie kann ich meinen NSLog so einrichten, dass er keine Warnung generiert? Wenn ich den Vorschlägen von Xcode folge, steige ich in eine Endlosschleife des Änderns des Formatbezeichners ein, aber die Warnungen verschwinden nie.
Der Leitfaden zur Portabilität für universelle Anwendungen schlägt Casting vor in diesem Fall.
%Vor%