RestKit을 처음 사용했습니다. 엔티티 Space와 User 사이에 다 대다 관계를 매핑하려고합니다. 이 질문의 목적을 위해 모든 공간 객체가 이미 핵심 데이터 저장소에 있다고 가정합니다.코어 데이터가있는 다 대다 RestKit : 작동하지만 제대로하고 있습니까?
REST API에서 주어진 공간에 대해 모든 사용자를 불러 오기 위해 한 번의 호출을 할 수 있습니다. 내 네트워크 가져 오는 클래스를 초기화 할 때 우선, 나는 사용자의 목록 구문 분석에 대한 매핑 적절한을 설정 : 공간에 대한 사용자의 링크를 채우기 위해, 그리고
RKManagedObjectMapping *teamMapping = [RKManagedObjectMapping mappingForEntity:[NSEntityDescription entityForName:@"User" inManagedObjectContext:self.manager.objectStore.primaryManagedObjectContext] inManagedObjectStore:self.manager.objectStore];
[teamMapping mapKeyPath:@"id" toAttribute:@"userID"];
[teamMapping mapKeyPath:@"name" toAttribute:@"name"];
teamMapping.primaryKeyAttribute = @"userID";
[self.manager.mappingProvider setMapping:teamMapping forKeyPath:@"users.user"];
을, 나는이 작업을 수행 :
NSArray *spaces = [self.managedObjectContext executeFetchRequest:[NSFetchRequest fetchRequestWithEntityName:@"Space"] error:nil];
for (QBSpace *space in spaces)
{
[self.manager loadObjectsAtResourcePath:[NSString stringWithFormat:@"space/%@/users", space.wikiName] usingBlock:^(RKObjectLoader *loader) {
loader.onDidLoadObjects = ^(NSArray *objects){
space.team = nil;
for (QBUser *user in objects)
{
[space addTeamObject:user];
}
};
}];
}
즉, 반환 된 개체 배열을 기반으로 space-> user 링크를 수동으로 추가합니다.
올바른 방법일까요? 그것은 잘 작동하는 것,하지만 난 RestKit 것들을 자동으로하고 관련 트릭을 놓치고있어 걱정입니다.
<users type="array">
<user>
<id>aPrimaryKey</id>
<login>loginName</login>
<login_name warning="deprecated">loginName</login_name>
<name>Real Name</name>
</user>
그래서 내가 링크 노력하고있어 공간을 나타 내기 위해 반환 된 파일에 아무것도 같은
는 해당 파일에 대한 반환 된 XML 보이는 : 나는 전달 된 URL에있는 I 요청했지만 반환 된 문서에는 아무 것도 없으므로이 블록 기반 솔루션을 생각해 냈습니다.
모든 RestKit 사용자에게이 방법은 다 대다 링크를 형성하는 데 적합한 방법입니까?
모델 개체가 웹 서비스 요청을 트리거하도록 할 수 있습니까? MVC에 위배되는 것 같습니다. 확실히 생각할 사람. 핵심 데이터와 다 - 대 - 다 관계를 처리하는 RestKit 문서에 대한 예제 또는 링크를 알고 있습니까? –
나는 당신이 무슨 뜻인지 안다. 웹 서비스 작업을하면서 GetSpace와 같은 클래스로 시작했지만, 처음부터 끝까지 작업했을 때 웹 서비스 물건이 내가 다루고있는 데이터의 슈퍼 클래스에 더 잘 앉았다. 그래서 수퍼 클래스 인 BasePostData로 끝났습니다. 그런 다음 클래스와 관련하여 뭔가 특별한 작업을하고 있다면 (예를 들어 관계에 링크하는 것과 같이) 서브 클래스에서 할 수 있습니다. 나는 이것이 의미가 있기를 바랍니다. –
코어 데이터와 다 - 대 - 다 관계를 처리하는 RestKit 문서에 대한 예제 또는 링크를 알고 있습니까? - 하나의 JSON 요청에서 이들 사이의 매핑을 의미한다고 가정합니다. 아니요. 어떻게해야하는지 모르겠습니다. 그것은 별도의 요청으로하는 경우, 나는 당신이 코드에서 그들을 연결할 수있을 것 같아요 ...하지만 미안 아무 예도. –