내 응용 프로그램의 채팅 부분에 사용자가 응용 프로그램을 열 때마다 대화 데이터를 장치에 유지하려고 시도 할 때 사용자가 새로 고칠 필요가 없습니다.다른 개체에 RLMObject 추가 RLMArray는 처음에만 작동합니다.
데이터베이스에서 모든 메시지를 가져온 후 배열을 반복하고 대화 모델 메시지 속성 (RLMArray)에 저장합니다.
각 메시지마다 기본 키가 있으므로 대화 메시지에 추가하기 전에 해당 메시지가 이미 있는지 확인하기 위해 영역을 확인합니다. 이것은 내가 응용 프로그램을 처음 사용할 때 잘 작동하지만 내가 다시 실행하면이 오류를 얻을 : 여기
'RLMException', reason: 'Can't set primary key property 'serverID' to existing value '1355'.'
가 보면 영역
RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
for (Message *model in messageArray) {
NSLog(@"message model: %@", model);
TERMessage *message = [[TERMessage alloc] initWithMessage:model];
TERMessage *existingObject = [self.model.messages objectsWhere:@"serverID == %@",message.serverID].firstObject;
NSLog(@"existing object: %@", existingObject);
if (existingObject == nil) {
[self.model.messages addObject:message];
} else {
NSLog(@"not being aded");
}
}
[realm commitWriteTransaction];
을! 속성은 프로젝트에서 다른 이름을 갖지만 프로세스가 작동합니다! 감사! –