问题
Using MagicalRecord, I am trying to get the record with a particular clientNumber which is a NSInteger (defined as int16 as the data type).
This is my line of code where I'm getting the error:
ClientInfo *clientSelected = [ClientInfo MR_findFirstByAttribute:@"aClientNumber" withValue: clientNumber inContext:localContext];
UPDATE: This is the definition of MR_findFirstByAtytribute:
MR_findFirstByAttribute:(NSString *) withValue:(id)
This is the error I'm getting:
Implicit conversion of NSInteger (aka int) is disallowed with ARC
For the life of me, I don't see what's wrong. ClientInfo is defined as
@interface ClientInfo : NSManagedObject
回答1:
The parameter type for withValue
is an id
(a pointer). NSInteger
is a scalar value (not an object) and cannot be converted to a pointer value implicitly.
This is purely a guess, but creating an NSNumber
from the NSInteger
might work:
NSNumber *val = [NSNumber numberWithInteger:clienNumber]
ClientInfo *clientSelected = [ClientInfo MR_findFirstByAttribute:@"aClientNumber" withValue:val inContext:localContext];
回答2:
As per your definition of method it's expecting and id
and your are passing it a NSInteger
aka int
来源:https://stackoverflow.com/questions/13957558/implicit-conversion-of-nsinteger-error