레코드를 배열에 저장하고 CoreData에서 삭제하려고합니다. NSCopying 사용하여 시도했지만 copyWithZone NSManagedObject 작동하지 않는 것 같습니다. 나는 정말 붙어있어, 어떤 도움을 주시면 감사하겠습니다.CoreData에서 삭제 된 후에도 CoreData 결과 배열을 저장합니다.
0
A
답변
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
값을 읽고 배열에 값을 저장하고 핵심 데이터 항목을 제거해야합니다. 핵심 데이터가 마음에 들지 않는 이유 중 하나는 또 다른 시스템을 배우는 것이 고통이기 때문입니다. –
예, 일부 문자열의 값을 복사하여 배열에 저장하려고합니다. CoreData는 실제로 고통입니다. 답장을 보내 주셔서 감사합니다. – Saleh
당신은 무엇을하고 싶은지 더 설명 할 수 있습니까? 짧은 시간 동안 또는 영구적으로 저장 하시겠습니까? 핵심 데이터는 고통스럽지 않습니다. 매우 간단합니다. 그리고 BTW 귀하의 문제는 핵심 데이터 문제가 아닌 것 같습니다. – shannoga