2015-01-22 5 views
1

restkit을 사용 중입니다. screeshot 내가 고아 개체RestKit 가져 오기 요청 블록 (고아 객체 삭제)

[objectManager addFetchRequestBlock:^NSFetchRequest *(NSURL *URL) { 
RKPathMatcher *pathMatcher = [RKPathMatcher pathMatcherWithPattern:@"/api/lists/:phone_no"]; 

    NSDictionary *argsDict = nil; 
    BOOL match = [pathMatcher matchesPath:[URL relativePath] tokenizeQueryStrings:NO parsedArguments:&argsDict]; 
    NSString *phone_no; 
    if (match) 
    { 
     phone_no = [argsDict objectForKey:@"phone_no"]; 
     NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"List"]; 
     //we don't need request predicate here. We delete all local items which are not present in retruned response. 

     return fetchRequest; 
    } 
    return nil; 

}]; 

그것은 고아 목록 및 작업 개체에 대한 잘 작동을 삭제 요청 블록을 가져 오기 다음 추가 한 Core Data Tables

같이 내 coredata 기관이 배치되어있다. 예를 들어 서버를 통해 일부 목록의 작업이 삭제 된 경우 새로 고치면 해당 양식이 로컬 저장소 및 테이블보기에서 사라집니다.

하지만 'Task Log', 'Task Comment'및 'Task Notes'와 같은 Task의 하위 노드는 해당 서버가 삭제되면 로컬 저장소에서 삭제되지 않습니다.

예를 들어 작업의 메모가 서버에서 삭제 된 다음 데이터를 새로 고치면 '지금'분리 된 작업 메모가 표에 계속 표시됩니다.

난 내가 잘못

//Response Descriptor GET for List 
RKResponseDescriptor *listResponseDescriptorGET = [RKResponseDescriptor responseDescriptorWithMapping:listEntityMapping 
                           method:RKRequestMethodGET 
                          pathPattern:@"/api/lists/:phone_no" 
                           keyPath:nil 
                          statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; 

를하고있는 중이 야 무엇 적절한 JSON 형식으로 모든 관련 데이터를 반환이 GET 디스크립터를 사용하고? 나는 결과를 자동으로 업데이트하는 컨트롤러를 사방에 가져와 사용한다.

필요한 경우 자세한 정보를 제공 할 수 있습니다.

답변

3

당신은 그렇게 잘못하지 않고 있지만, 당신의 기대는 잘못되었습니다.

코어 데이터 삭제 규칙으로 인해 목록이 삭제 될 때 작업이 삭제되는 경우 RestKit이 아닌 작업이 삭제됩니다. RestKit은 저장소에있는 List 개체 만 삭제할 수 있습니다.

코어 데이터의 삭제 규칙을 구성하여 해당 작업의 소유 관계 종료점까지도 계단식으로 삭제할 수 있지만 다시 RestKit의 일부는 아닙니다.