0

RLMObject を他の RLMObjects の配列でインスタンス化する正しい方法は何ですか?

ドキュメントには何も言及されておらず、私の最初の試み(何もしないでください。Realmが正しいことをしていると仮定し、空の配列を作成して、最初の関係を設定したときにそれを割り当ててもうまくいかないようです.

これが私のコードです:

[[RLMRealm defaultRealm] beginWriteTransaction];
[_realmAnswers removeAllObjects];
NSMutableArray* newArray = [NSMutableArray arrayWithCapacity:answers.count];

for (NSString* answerString in answers){
    OFEAnswerEntry* newAnswer = [[OFEAnswerEntry alloc] init];
    newAnswer.answerString = answerString;
    [newArray addObject:newAnswer];
}

[_realmAnswers addObjectsFromArray: newArray];
[[RLMRealm defaultRealm] commitWriteTransaction];
4

2 に答える 2

3

addObjectsFromArray:メソッドの使用RLMArray:

ArrayPropertyObject *obj = [ArrayPropertyObject createInRealm:realm withObject:@[@"arrayObject", @[], @[]]];
StringObject *child1 = [StringObject createInRealm:realm withObject:@[@"a"]];
StringObject *child2 = [[StringObject alloc] init];
child2.stringCol = @"b";
[obj.array addObjectsFromArray:@[child2, child1]];

このコードは、realm-cocoaの単体テストから直接取得されました。

より少ないコード行でこれを行うこともできます。

NSArray *stringObjects = @[
    [[StringObject alloc] initWithObject:@[@"a"]],
    [[StringObject alloc] initWithObject:@[@"b"]]
];
[ArrayPropertyObject createInRealm:realm withObject:@[@"arrayObject", stringObjects, @[]]];
于 2014-07-25T00:00:40.740 に答える