0

Web サービスからデータを取得して Core Data に保存する iPhone アプリを作成しています。これらすべてのプロパティには、ディクショナリでそれらを識別するためのキーがあります。私はNSObjectすべてのプロパティのクラスを持っています。

という Web サービスから取得されないプロパティをもう 1 つ追加することにしましたcheckMark。このメソッドにも追加しました。checkMark問題は、次のようなメソッドでプロパティを設定しようとするたびに[s setValue:[NSNumber numberWithInt:check] forKey:@"checked"];、というエラーが表示sされることです。これを修正するにはどうすればよいですか?managedObject"the entity Course is not key value coding-compliant for the key "checked"

- (id)initWithDictionary:(NSDictionary *)dictionary
{
    self = [super init];
    if (self) {
        // Set the property values
        _iD = [[dictionary valueForKey:@"Id"] intValue];
        _isCurrent = [[dictionary valueForKey:@"IsCurrent"] boolValue];
        _checkMark = [[dictionary valueForKey:@"checked"] intValue];
    }
}
4

1 に答える 1

0

「チェック済み」のキーに対して、エンティティ Course キー値をコーディングに準拠させる必要があります。

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueCoding/Articles/Compliant.html

つまり、セッターsetChecked:とゲッターが必要checkedです。通常は、そのセッターとゲッターを合成したプロパティを持つことです。

ちなみに、ログ メッセージがエンティティ Course について話しているというdictionary事実は、NSDictionary として呼び出してキャストしているものは、実際には辞書ではなく、別のもの、つまり NSManagedObject である可能性があることを示唆しています。推測ですが...ここで実際に何が起こっているかを確認するために、ロギング/ブレークポイントを実行するかもしれません。

于 2012-11-28T04:57:59.930 に答える