NSLog gibt mir Warnungen, die nicht korrigierbar sind

7

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.

    
Jackson 13.11.2012, 06:28
quelle

3 Antworten

14

Ja, das ist nervig. Es ist eine 32/64 Bit Sache, glaube ich. Am einfachsten ist es, einfach zu lange zu werfen:

%Vor%     
D.C. 13.11.2012 06:32
quelle
6

Der Leitfaden zur Portabilität für universelle Anwendungen schlägt Casting vor in diesem Fall.

%Vor%     
jarjar 13.11.2012 06:32
quelle
2

Eine andere Option wird hier erwähnt: NSInteger und NSUInteger in einer gemischten 64bit / 32bit-Umgebung

%Vor%     
geowar 28.04.2014 19:19
quelle