Implicit conversion of NSInteger error

孤街醉人 提交于 2020-01-13 07:33:10

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!