iOS에서 코어 데이터 모델을 구현하는 방법을 배우기 시작했습니다. 엔티티 간의 일대일 관계로 데이터를 저장하고 검색하는 방법에 대한 기본 자습서를 통해 이제 일대 다 관계를 구현하려고합니다. 다음과 같이 내 데이터 모델은 정의 된 각각의 클래스에 두 개의 항목으로 구성핵심 데이터 : 일대 다 관계로의 삽입
Restaurant:
@interface Restaurant :NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSMutableArray *user_reviews; /* One to Many Relation to Review Entity*/
@end
Review:
@interface Review : NSObject
@property (nonatomic, strong) NSString *rating;
@property (nonatomic, strong) NSString *review_text;
@property (nonatomic, strong) User *user;
@end
나는 삽입 NSMutableSet을 사용하여 비슷한 질문을 찾았지만, 나는 NSMutable 배열에 대해 동일한을 구현 드릴 수 없습니다. 내가 JSON을 통해 레스토랑 및 리뷰에 대한 데이터를 검색하고 코어 데이터베이스에 저장하기 전에 일시적 클래스에 저장
NSManagedObjectContext *context = [self managedObjectContext];
Restaurant *rest = [NSEntityDescription insertNewObjectForEntityForName:@"Restaurant" inManagedObjectContext:context];
rest.name = restaurant.name;
: 같은
현재 내 삽입 코드 보인다. 일대 다 관계가있는 데이터를 어떻게 삽입합니까?
는 편집 : 현재 내가 핵심 데이터 모델에 삽입이 같은 클래스를 구현하기 위해 노력하고
NSMutableArray *user_reviews;
로 user_review 속성을 정의하는 클래스의 형태로 데이터를받을 수 있습니다. 그러나 핵심 데이터 모델은 NSMutableArray 대신 NSSet을 사용합니다. 짐작할 수있는 한 가지 방법은 NSMutableArray를 사용하는 대신 NSSet으로 변경하는 것을 제외하고는 동일한 속성으로 모든 클래스를 복제하는 것입니다. 그러나 엄청난 양의 중복 코드가 생성됩니다. 이 작업을 수행하는보다 효율적인 방법이 없어야합니까? 당신의 검토가 당신의 coreDataModel에 관계한다 경우
이 부분에 코드를 복사/붙여 넣기 ^^ NSObjects가 아니고 NSManagedObjects가 있으면 문제가 있습니까? 이 솔루션에 반대하는 이유가 있다면 알려주십시오 :) – geo
* "... 내가 생각한만큼 *"- Restaurant.user_reviews 및 Review.restaurant가 역 관계로 설정된 경우 * 올바른지 * *, 스크린 샷에 나와 있습니다. –
문제가 있습니다. 먼저 RestKit 0.20을 사용하여 API에서 전체 데이터를 온라인으로로드합니다. Restkit은 모든 관계를 NSSet 대신 배열에로드합니다. Restkit에서 "Restaurant.h"클래스를 정의하여 데이터를로드/매핑합니다. 이제 데이터를 코어 데이터 모델로로드하여 저장하므로 오프라인 액세스가 가능합니다. 하지만 그렇게하려면 각 개체에 대한 클래스를 만들어야합니다. NSMutableArray와 NSSet을 제외한 모든 것이 동일하기 때문에 RestKit API를 위해 만든 클래스를 재사용하려고합니다. – Kyuubi