2011-11-16 2 views
0

레코드를 배열에 저장하고 CoreData에서 삭제하려고합니다. NSCopying 사용하여 시도했지만 copyWithZone NSManagedObject 작동하지 않는 것 같습니다. 나는 정말 붙어있어, 어떤 도움을 주시면 감사하겠습니다.CoreData에서 삭제 된 후에도 CoreData 결과 배열을 저장합니다.

+0

값을 읽고 배열에 값을 저장하고 핵심 데이터 항목을 제거해야합니다. 핵심 데이터가 마음에 들지 않는 이유 중 하나는 또 다른 시스템을 배우는 것이 고통이기 때문입니다. –

+0

예, 일부 문자열의 값을 복사하여 배열에 저장하려고합니다. CoreData는 실제로 고통입니다. 답장을 보내 주셔서 감사합니다. – Saleh

+0

당신은 무엇을하고 싶은지 더 설명 할 수 있습니까? 짧은 시간 동안 또는 영구적으로 저장 하시겠습니까? 핵심 데이터는 고통스럽지 않습니다. 매우 간단합니다. 그리고 BTW 귀하의 문제는 핵심 데이터 문제가 아닌 것 같습니다. – shannoga

답변

1

NSManagedObject의 모든 필드 값을 사전에 복사하고 해당 사전을 배열에 저장하십시오.

NSMutableObject 범주에 구현할 수있는 작은 루틴을 작성했습니다.이 루틴을 사용하면이를 얻을 수 있습니다.

(Mac 컴퓨터에 지금 접속하지 않았으므로 코드에 오타가있을 수 있지만 그 외에는 정상적으로 작동합니다.)

-(NSDictionary*)retrieveAsDict { 
    NSMutableDictionary *aux = [[NSMutableDictionary alloc] init]; 
    NSDictionary *attributes = [self attributesByName]; 
    NSArray *attributeNames = [attributes allKeys]; 

    for (NSString *key in attributeNames) { 
    [aux setValue:[self valueForKey:key] forKey:key]; 
    } 

    NSDictionary *ret = [NSDictionary dictionaryWithDictionary:aux]; 

    // Uncomment this if not using ARC 
    //[aux release]; 

    return(ret); 
} 

자세한 설명이 필요하면 의견을 말하면 곧 답변 드리겠습니다.

+0

고마워, 나는 당신의 코드에서이 문제를 해결하는 방법을 알고있다. – Saleh