18

使用 MagicalRecord,我试图获取具有特定clientNumber的记录,该 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
4

2 回答 2

32

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

这纯粹是一个猜测,但从NSNumber可能NSInteger工作中创建一个:

NSNumber *val = [NSNumber numberWithInteger:clientNumber];
ClientInfo *clientSelected = [ClientInfo MR_findFirstByAttribute:@"aClientNumber" withValue:val inContext:localContext];
于 2012-12-19T17:19:41.673 回答
-1

根据您对方法的定义,它是期望的,id并且您正在传递NSIntegerint

于 2012-12-19T17:59:54.833 回答