1

次のような Core Data モデルがあります。ここで、子は対多の関係です。

.h

@implementation MyEntity

@dynamic name;
@dynamic children;

@end

.m

@interface MyEntity : NSManagedObject

@property (nonatomic) NSString *name;
@property (nonatomic) NSOrderedSet *children;

@end

次に、次を使用して設定しようとします。

        MYAppDelegate *delegate = (MYAppDelegate *)[UIApplication sharedApplication].delegate;
        NSManagedObjectContext *managedObjectContext = [delegate managedObjectContext];
        NSEntityDescription *categoryEntity = [NSEntityDescription entityForName:@"MyEntity" inManagedObjectContext:managedObjectContext];
        NSManagedObject *newCategory = [[NSManagedObject alloc] initWithEntity:categoryEntity insertIntoManagedObjectContext:managedObjectContext];
        [newCategory setValue:key forKey:@"name"];
        NSOrderedSet *testSet = [[NSOrderedSet alloc] initWithArray:@[@"This", @"is", @"a", @"test"]];
        [newCategory setValue:testSet forKey:@"children"];
    }
}

しかし、その最後の行で、次のエラーが発生します。

NSCFConstantString managedObjectContext]: インスタンス 0xe8fa0 に送信された認識されないセレクター

コンパイラに変更NSOrderedSetすると、 .NSSetNSOrderedSet

セットを に割り当てるにはどうすればよいNSManagedObjectですか?

4

1 に答える 1

4

問題は ではなく、セット内に配置NSOrderedSetしたNSStringインスタンスです。これらは、関係の宛先のデータ モデルで構成されているエンティティのインスタンスに置き換える必要があります。関係を間違った種類のオブジェクトで満たすことはできません。

于 2013-08-06T07:08:49.733 に答える