MagicalRecordを使用して、NSInteger(データ型としてint16として定義)である特定のclientNumberのレコードを取得しようとしています。
これは、エラーが発生するコード行です。
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
withValue
のパラメーター型はid
(ポインター)です。 NSInteger
は(オブジェクトではなく)スカラー値であり、暗黙的にポインター値に変換することはできません。
これはあくまで推測ですが、NSNumber
からNSInteger
を作成するとうまくいく場合があります。
NSNumber *val = [NSNumber numberWithInteger:clienNumber]
ClientInfo *clientSelected = [ClientInfo MR_findFirstByAttribute:@"aClientNumber" withValue:val inContext:localContext];
メソッドの定義によると、それは期待しており、id
とNSInteger
別名int