2016-09-23 4 views
1

전 ios 용 프로그래밍을 배우고 있습니다.영역의 테이블을 업데이트하십시오.

[{ 
    "id": 1, 
    "title": "Book1", 
    "author": "BookAuthor1", 
    "chapters": [ 
     "Chapter1", 
     "Chapter2", 
     "Chapter3", 
     "Chapter4", 
     "Chapter5" 
    ] 
}, 
{ 
    "id": 2, 
    "title": "Book2", 
    "author": "BookAuthor2", 
    "chapters": [ 
     "Mychapter1", 
     "Mychapter2", 
     "Mychapter3", 
     "Mychapter4", 
     "Mychapter5" 
    ] 
}] 

내가 영역에 대한 모델을 만들어 : :이 같은 JSON 응답을 읽고 조언을 필요

//Book.h 
@interface Book : RLMObject 

@property NSInteger bookID; 
@property NSString *title; 
@property NSString *author; 
@property RLMArray<Chapter> *chapters; 

@end 
RLM_ARRAY_TYPE(Book) 
//Book.m 
@implementation Book 

+ (NSString *)primaryKey { 
    return @"bookID"; 
} 

@end 

//Chapter.h 
@interface Chapter : RLMObject 

@property NSString *chapterTitle; 

@end 
RLM_ARRAY_TYPE(Chapter) 

//Chapter.m 
@implementation Chapter 
@end 

는 어떻게 업그레이드 할 수있는 모델을 조정하기를, 데이터는 모두 테이블에 업데이트됩니다 ? 지금은 이제 팩 발생

[Book createOrUpdateInRealm: defaultRealm withValue: newBook]; 

이 책 테이블을 제공하고, 장 새 테이블에 새로운 데이터 (데이터 중복)에 추가 할 때. 챕터 배열에서는 primaryKey에 사용할 챕터 이름 만 ID가 없습니다. 그런 경우에는 무엇을 할 수 있습니까?

답변

2

Chapter의 기본 키가 없으므로 Realm은 업데이트 할 항목을 알지 못합니다. 따라서 Realm은 새로운 테이블 Chapter을 추가하여 작업을 수행합니다. Chapter의 기본 키를 추가하는 것이 좋습니다.

관련 문제