わかりましたので、アプリ用にこの統計トラッカーを作成しようとしています。必要なものすべてを追跡する statTracker というデータ モデル オブジェクトを作成しました。セレクターを使用して値を設定および取得できますが、KVC (つまり setValue: forKey: ) を使用しようとすると、すべてがうまくいかず、StatTracker クラスが KVC に準拠していないと表示されます。
valueForUndefinedKey:]: エンティティ StatTracker は、キー「timesLauched」のキー値コーディングに準拠していません。2010-05-18 15:55:08.573
それをトリガーしているコードは次のとおりです。
NSArray *statTrackerArray = [[NSArray alloc] init];
statTrackerArray = [[CoreDataSingleton sharedCoreDataSingleton] getStatTracker];
NSNumber *number1 = [[NSNumber alloc] init];
number1 = [NSNumber numberWithInt:(1 + [[(StatTracker *)[statTrackerArray objectAtIndex:0] valueForKey:@"timesLauched"] intValue])];
[(StatTracker *)[statTrackerArray objectAtIndex:0] setValue:number1 forKey:@"timesLaunched" ];
NSError *error;
if (![[[CoreDataSingleton sharedCoreDataSingleton] managedObjectContext] save:&error]) {
NSLog(@"error writing to db");
}
これで十分なコードかどうかわかりませんが、さらに必要な場合は、必要なものを教えてください。
KVC を使用できれば、このすべての統計追跡機能を、問題の値の文字列引数を使用して単一のメソッド呼び出しに抽象化できるため、これは非常に便利です。少なくともそれがここで達成したいことです。私は実際に KVC の力を理解していますが、今はそれを機能させる方法を理解しようとしています。
ありがとう!
ニック
出力の下に提案されたコードを追加すると、次のようになります。
オブジェクト: (エンティティ: StatTracker; id: 0x3e1e1b0 ; データ: ) 2010-05-19 11:30:38.173 verses[29526:207] *** 例外 'NSUnknownKeyException' がキャッチされていないため、アプリを終了します。理由: '[ valueForUndefinedKey:] : エンティティ StatTracker は、キー「timesLauched」のキー値コーディングに準拠していません。2010-05-19 11:30:38.174 [29526:207] スタック: (