17 Stimmen

EXC_BAD_ACCESS beim Versuch, eine Zeichenkette zu erstellen, indem %@ für einen int verwendet wird

Für die Verwendung in Core Data habe ich versucht, eine NSPredicate Objekt. minLength et maxLength sind vom Typ int :

 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"length >= %@ AND length <= %@",
                          minLength, maxLength];

Das Programm stürzt hier mit einer EXC_BAD_ACCESS . Dies ist nicht der Fall, wenn ich die %d anstelle von %@ :

 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"length >= %d AND length <= %d",
                          minLength, maxLength];

Was übersehe ich hier?

48voto

albertamg Punkte 28422

%@ ist die Formatbezeichner für Objekte. Eine int ist kein Objekt. Der Formatbezeichner für vorzeichenbehaftete Ganzzahlen lautet %d o %i .

5voto

MByD Punkte 133514

Im Format für int sollten Sie nicht %@ aber %i . %@ ist für Objekte".

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X