2016-05-27 15 views
-2

Aus irgendeinem Grund kann ich meinen NSNumber-Wert nicht einstellen.__NSCFNumber gibt einen negativen Wert zurück

-Code ist einfach:

obj.objectId = [filteredArr[i] valueForKey:@"idx"]; 

Wo [[filteredArr[i] valueForKey:@"idx"] class]__NSCFNumber ist.

Es sollte eine Zahl von 0 bis 200 sein .. aber es ist eigentlich -5764607523034234861

+0

'[[gefilterteArr [i] valueForKey: @" idx "] integerValue]'? 'objectId' soll eine NSNumber, NSInteger usw. sein? – Larme

+0

NSLog (@ "mutArNam% ld", (lang) [((CIdNamedObject *) mutArr [0]). ObjectId integerValue]); zeigt immer noch -5764607523034234861 –

+0

Wenn Sie 'NSLog (@" Wert:% @ ", [filteredArr [i] valueForKey: @" idx "])', haben Sie die falsche? – Larme

Antwort

2

NSNumber und NSString auf die Methoden -intValue reagieren, die einen int zurückgibt.

NSNumber *myNumber = @([[filteredArr[i] valueForKey:@"idx"]intValue]); 

Dies kann Ihnen helfen.

+0

leider zeigt es immer noch falsche Nummer - 1869 –

+0

@EvgeniyKleban können Sie bitte das Protokoll NSLog (@ "Wert:% @", [filteredArr [i] valueForKey: @ "idx"]) –

+0

Wert: -5764607523034233021 –