3

私には多くの関係があります。たとえば、学生には多くのクラスがあります。

次のコードを実行すると_classes、新しいClsオブジェクトが含まれていないのはなぜですか?しかし、アプリを閉じて再度開くと、そうなります。

そして、フォローアップの質問として、新しいクラスを追加した直後に、クラスの新しいリストを取得するにはどうすればよいですか?

NSMutableSet* classes = [student mutableSetValueForKey:@"classes"];
NSManagedObject* cls = [NSEntityDescription insertNewObjectForEntityForName:@"Cls" inManagedObjectContext:context];
[cls setValue:name forKey:@"name"];
[student addClassesObject:cls];

NSError* err;
[context save:&err];

NSMutableSet* _classes = [student mutableSetValueForKey:@"classes"];

そして、これは私のaddClassesObject:操作がどのように見えるかです(XCodeによって自動生成されます)

- (void)addClassesObject:(Cls*)cls
{

}

ありがとうございました!

4

1 に答える 1

3

オブジェクトをセットに直接追加することはできません。Core Data で生成されたアクセサーまたは独自のカスタム アクセサーを使用する必要があります。.h ファイルを調べると、次の行に沿って何かが表示されるはずです

-(void)addClsObject:(Cls *)theObject;

-(void)addClsObjects:(NSSet *)set;

したがって、特定のケースでは、Cls オブジェクトを取得したら、次のようにします。

[student addClassesObject:cls];

次に、保存を実行すると、クラス セットを取得できるはずです。参考までに、このメソッドと relatd NSSet relatd メソッドを呼び出すと、逆の関係も設定されます。

幸運を

T

于 2012-06-12T03:21:31.183 に答える