隐式转换NSInteger错误

时间:2012-12-19 17:10:55

标签: objective-c xcode4.5

使用MagicalRecord,我试图用特定的 clientNumber 来获取记录,这是一个NSInteger(定义为int16作为数据类型)。

这是我的代码行,我收到错误:

ClientInfo *clientSelected = [ClientInfo MR_findFirstByAttribute:@"aClientNumber" withValue: clientNumber inContext:localContext];

更新:这是MR_findFirstByAtytribute:

的定义
MR_findFirstByAttribute:(NSString *) withValue:(id)

这是我得到的错误:

Implicit conversion of NSInteger (aka int) is disallowed with ARC

对于我的生活,我没有看到什么是错的。 ClientInfo定义为

@interface ClientInfo : NSManagedObject

2 个答案:

答案 0 :(得分:25)

withValue的参数类型是id(指针)。 NSInteger是标量值(不是对象),不能隐式转换为指针值。

这纯粹是猜测,但是从NSNumber创建NSInteger可能会有效:

NSNumber *val = [NSNumber numberWithInteger:clienNumber]
ClientInfo *clientSelected = [ClientInfo MR_findFirstByAttribute:@"aClientNumber" withValue:val inContext:localContext];

答案 1 :(得分:0)

根据您对方法的定义,我们期待id并且您传递的是NSInteger又名int