他のエンティティと何らかの関係があるメソッドを保存したいと思います。アプローチと背景は1対1の関係ですが、メソッドにはいくつかのヒントと例が含まれている必要があります。私はすでに他の多くの質問やチュートリアルを見ましたが、なぜそれが機能しないのかわかりません。dataToBeSavedは、メソッドに割り当てたい文字列としてデータを含むディクショナリです。
これがMethod.hです。
@interface Method : NSManagedObject
@property (nonatomic, retain) NSNumber * id;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) Approach *methodtoapproach;
@property (nonatomic, retain) Background *methodtobackground;
@property (nonatomic, retain) NSSet *methodtoexample;
@property (nonatomic, retain) NSSet *methodtotipps;
@end
@interface Method (CoreDataGeneratedAccessors)
- (void)addMethodtoexampleObject:(Example *)value;
- (void)removeMethodtoexampleObject:(Example *)value;
- (void)addMethodtoexample:(NSSet *)values;
- (void)removeMethodtoexample:(NSSet *)values;
- (void)addMethodtotippsObject:(Tipps *)value;
- (void)removeMethodtotippsObject:(Tipps *)value;
- (void)addMethodtotipps:(NSSet *)values;
- (void)removeMethodtotipps:(NSSet *)values;
@end
これが私のコードです。コメントされたセクションをその中に入れて、私が何をしようとしたかを確認できるようにします...
Method *newMethod = [NSEntityDescription insertNewObjectForEntityForName:@"Method" inManagedObjectContext:managedObjectContext];
// [newMethod setValue:[dataToBeSaved objectForKey:@"name"] forKey:@"name"];
// [newMethod setValue:[NSNumber numberWithInt:11] forKey:@"id"];
newMethod.name = [dataToBeSaved objectForKey:@"name"];
newMethod.id = [NSNumber numberWithInt:11];
newMethod.methodtoapproach.summary = [dataToBeSaved objectForKey:@"summary"];
newMethod.methodtobackground.background = [dataToBeSaved objectForKey:@"background"];
NSMutableSet *tippsSet = [[NSMutableSet alloc] initWithObjects:[dataToBeSaved objectForKey:@"tipps"], nil];
NSMutableSet *exampleSet = [[NSMutableSet alloc] initWithObjects:[dataToBeSaved objectForKey:@"example"], nil];
[newMethod addMethodtotipps:tippsSet];
[newMethod addMethodtoexample:exampleSet];
// [[newMethod mutableSetValueForKey:@"methodtotipps"] addObject:[dataToBeSaved objectForKey:@"tipps"]];
// [[newMethod mutableSetValueForKey:@"methodtoexample"] addObject:[dataToBeSaved objectForKey:@"example"]];
// [newMethod addMethodtotippsObject:[dataToBeSaved objectForKey:@"tipps"]];
// [newMethod addMethodtoexampleObject:[dataToBeSaved objectForKey:@"example"]];
// newMethod.methodtotipps.tipps = [dataToBeSaved objectForKey:@"tipps"];
// newMethod.methodtoexample.example = [dataToBeSaved objectForKey:@"example"];
そのようにアプリを実行すると、次のエラーが発生します。
*キャッチされなかった例外'NSInvalidArgumentException'が原因でアプリを終了しています、理由:'-[__ NSCFStringエンティティ]:認識されないセレクターがインスタンスxxxに送信されました
さらに情報が必要な場合は、コメントに投稿してください...