Ich habe die folgende Codezeile in meinem Mac OS X-Anwendung:NSLog gibt mir Warnungen, die nicht korrigierbar sind
NSLog(@"number of items: %ld", [urlArray count]);
Und ich bekomme die Warnung: „Format gibt Typ‚long‘, aber das Argument Typ 'NSUInteger' (auch bekannt als 'unsigned int')“
Allerdings, wenn ich meinen Code ändern:
NSLog(@"number of items: %u", [urlArray count]);
ich die Warnung:
Format gibt 'unsigned int', aber das Argument Typ 'NSUInteger' (auch bekannt als 'unsigned long')
So dann ich es
ändernNSLog(@"number of items: %u", [urlArray count]);
aber ich erhalte die Warnung geben: Format legt fest, Geben Sie 'unsigned long' ein, 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.
Die eher unnötig scheint aber es klar, dass die Warnungen auf. – Jackson
Nicht sicher, ob es einen Unterschied macht, aber Sie sollten wahrscheinlich auf den gleichen Typ wie der Formatbezeichner verweisen. Also (unsigned long) wäre% lu, oder (long) wäre% ld –
@darren es macht einen Unterschied, nicht so ist undefiniertes Verhalten. –