2013-06-12 2 views
2

NSManagedObject 개체를 해제하는 방법? NSManagedObjectContext에서 - deleteObject :를 사용하여 개체 (NSManagedObject)를 삭제하고 저장 작업을 수행했을 때 표시되지만 보지 못했습니다. NSManagedObject 메모리 관리에 신경 써야합니까?NSManagedObject 개체를 해제하는 방법?

이 프로젝트와 dealloc 메서드를 재정의하는 관리 객체에서 ARC를 사용하고 있습니다. 코드 보인다

  • (무효)의 dealloc 같은 { NSLog (@ "관리되는 개체 출시") }

내가 컨텍스트에서 관리되는 개체를 삭제 한 다음 나는이 필요하지 않습니다 나타냅니다 저장 컨텍스트가 메모리를 낭비할지 여부를 공개하지 않으면 관리되는 개체?

미리 감사드립니다.

답변

0

컨텍스트에서 관리되는 개체를 가져온 다음이를 삭제 한 다음 컨텍스트를 저장하는 일반적인 시나리오에서는 관리되는 개체를 해제하지 않아도 관리되는 개체를 릴리스 할 수 있습니다.

추신 : 귀하의 질문 동기가 괜찮 으면 배우지만 ARC로 이동하는 것이 좋습니다.

1

짧은 답변 - 핵심 데이터는 NSManagedObject 개체의 메모리를 관리합니다.

답변 - 핵심 데이터가 컨텍스트에서 개체를 삭제하라는 메시지가 표시되는 경우에도 원래 가져온 결과가 포함 된 배열에서 말하면 (지금은 유효하지 않은) 개체에 대한 참조를 사용자가 어딘가에 유지할 수 있습니다. 또는 재산 일 수도 있습니다. ARC를 사용함에 따라 해당 객체가 결국 릴리즈 될 것이므로 객체에 대한 참조도 그대로 유지되지만 이러한 이유로 deleteObject:을 호출하면 당장 dealloc을 볼 수 없습니다.

성능이나 메모리 문제가 없다면 걱정하지 않으셔도됩니다. 그렇다면 NSManagedObjectContextrefreshObject: mergeChanges: 방법을 출발점으로 생각해 볼 가치가 있습니다.

관련 문제