Implizite Konvertierung von NSInteger Fehler
Mit MagicalRecord, ich werde versuchen, den Datensatz mit einem bestimmten clientNumber das ist ein NSInteger (definiert als int16 als Datentyp).
Dies ist mein code-Zeile, wo ich bin immer der Fehler:
ClientInfo *clientSelected = [ClientInfo MR_findFirstByAttribute:@"aClientNumber" withValue: clientNumber inContext:localContext];
UPDATE: das ist die definition von MR_findFirstByAtytribute:
MR_findFirstByAttribute:(NSString *) withValue:(id)
Dies ist der Fehler, ich bin immer:
Implicit conversion of NSInteger (aka int) is disallowed with ARC
Für das Leben von mir, ich sehe nicht, was falsch ist. ClientInfo ist definiert als
@interface ClientInfo : NSManagedObject
Es ist zu sagen, die Sie versuchen zu verwenden NSInteger-ein "Skalar" - wo ein Zeiger auf ein Objekt erwartet wird.
Das macht absolut keinen Sinn für mich... dann, was es sein soll?
Wir können nicht genau sagen, was es sein soll, ohne dass der MR_findFirstAttribute Methode Beschreibung, aber es ' s erwartet, ein NSNumber, die Sie verwenden müssen
(Ich bin damit einverstanden, dass es eine dumme -- sehr hilfreich -- Fehlermeldung. Sogar diejenigen von uns, die Jahrzehnte im biz waren, kratzen unsere Köpfe für ein paar Minuten das erste mal sahen wir es.)
Aktualisiert die Frage... funktioniert es immer noch nicht mit [NSNumber numberWithInt: clientNumber]... clientNumber ist definiert als NSInteger. Das problem scheint zu sein, die Umwandlung von NSInteger id, die ich kann nicht scheinen, um herauszufinden.
Das macht absolut keinen Sinn für mich... dann, was es sein soll?
Wir können nicht genau sagen, was es sein soll, ohne dass der MR_findFirstAttribute Methode Beschreibung, aber es ' s erwartet, ein NSNumber, die Sie verwenden müssen
[NSNumber numberWithInt:clientNumber]
(Ich bin damit einverstanden, dass es eine dumme -- sehr hilfreich -- Fehlermeldung. Sogar diejenigen von uns, die Jahrzehnte im biz waren, kratzen unsere Köpfe für ein paar Minuten das erste mal sahen wir es.)
Aktualisiert die Frage... funktioniert es immer noch nicht mit [NSNumber numberWithInt: clientNumber]... clientNumber ist definiert als NSInteger. Das problem scheint zu sein, die Umwandlung von NSInteger id, die ich kann nicht scheinen, um herauszufinden.
InformationsquelleAutor SpokaneDude | 2012-12-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Typ des Parameters für
withValue
ist einid
(pointer).NSInteger
ist ein skalarer Wert (nicht als Objekt) und kann nicht konvertiert werden, um einen Zeiger-Wert implizit.Dies ist lediglich eine Vermutung, aber das erstellen eines
NSNumber
von derNSInteger
funktionieren könnte:Aktualisierte Antwort.
XCode 4.5 unterstützt jetzt wörtlich, mit rückwärts-Kompatibilität zu iOS 4.3 so verwenden
@(clientNumber)
sieht wesentlich sauberer aus.InformationsquelleAutor mipadi
Gemäß Ihrer definition der Methode, der es erwartet und
id
und Ihre vergehen es eineNSInteger
akaint
InformationsquelleAutor Inder Kumar Rathore