保存されているすべてのユーザー (RLMObject) オブジェクトを取得しようとしています。次に、保存されているオブジェクトがあるかどうかを確認します。そうでない場合は、新しいユーザーオブジェクトを作成して保存しようとします。
RLMArray *allUsers = [User allObjects];
if (allUsers.count == 0) {
RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
User *newUser = [[User alloc]init];
newUser.userID = [userDict[@"id"] integerValue];
newUser.role = userDict[@"role"];
newUser.email = userDict[@"email"];
newUser.given_name = userDict[@"profile"][@"given_name"];
newUser.family_name = userDict[@"profile"][@"family_name"];
[realm addObject:newUser];
[realm commitWriteTransaction];
}
ただし、これは次のメッセージでクラッシュします。'RLMException', reason: 'Attempting to modify object outside of a write transaction - call beginWriteTransaction on a RLMRealm instance first.'
理由はよくわかりません。デフォルト レルムの書き込みトランザクション内のオブジェクトを変更しています。
前もって感謝します!