2011-03-31 5 views
2

저는 Name이라는 속성을 가진 Person을 가지고 있습니다.iPhone 핵심 데이터 - 엔티티의 새 값을 저장하는 방법?

컨텍스트를 통해 생성하고 Person의 인스턴스를 가져옵니다. 지금 줄 께

person.name = @ "Jack";

그런 다음 지속성 저장소에서 어떻게 업데이트합니까? [Context save]를 사용하여 말할 수 있습니다. 그러나 그 메소드를 호출하면 컨텍스트에서 나온 모든 것을 저장할 것입니까? 내가

person1.name = @ "JACK1"를 할 경우 예를 들어

; person2.name = @ "Jack2";

person1.name 만 업데이트하고 person2.name은 업데이트하지 않으려 고합니다. 어떻게해야합니까?

감사

+0

저장하지 않으려면 왜'person2.name'의 값을 변경하겠습니까? 여기서 기억할 것은 객체 그래프, 즉 속성을 변경하려는 메모리에있는 객체의 집합에 대한 것입니다. 피질은 그래프의 무결성을 유지할 수있는 유일한 방법이기 때문에 전체 그래프를 저장해야합니다. 실행 취소 기능을 살펴볼 수도 있습니다. – TechZen

답변

2

저장할 오브젝트와 선택하지 않는 오브젝트를 선택하거나 선택하지 마십시오. 컨텍스트를 저장할 때 수정 된 관리 대상 개체 컨텍스트의 개체가 업데이트되고 해당 컨텍스트의 개체에 대한 변경 내용을 저장하는 유일한 방법은 컨텍스트를 저장하는 것입니다.

person2와 작업하려는 경우 변경 내용을 커밋하지 않으려는 경우 별도의 관리되는 개체 컨텍스트를 만들 수 있습니다. 이것은 person2가 새 오브젝트이고 상점의 다른 오브젝트에 연결되지 않은 경우 잘 작동하지만 person2가 첫 x 째 컨텍스트에이 L 존재하는 경우 약간 복잡 할 수 있습니다. 핵심 데이터는 컨텍스트간에 변경 사항을 자동으로 동기화하지 않습니다. 처리 방법에 대한 자세한 내용은 Communicating Changes Between Contexts을 읽어보십시오.

+0

나는이 대답을 하나라고 생각한다. 나는 caleb가 더 많은 정보를 제공한다고 생각하기 때문이다. Asad, u r도 네 도움에 감사드립니다. – Jack

2

왜 .... 당신이 잭 person.name에 대한 값을 설정하자마자 컨텍스트를 저장 해달라고? & Jack2와 계속 작업하십시오.

+0

사람이 앱을 종료하면 App Delegate에 이미 [컨텍스트 저장]이 있습니다. 나는 이것에 Asad와 함께있다. – Walter

+0

답변 해 주셔서 감사합니다. 나의 요점 중 하나는 성능에 관한 것입니다. [컨텍스트 저장]을 호출하면 관련된 모든 개체를 검색하여 모두 저장합니까? 나는 하나의 obj 만 저장하려고 할 때 성능이 떨어지는 것 같지 않습니까? 또한, 당신은 하나의 obj를 저장하고 싶을 때마다 "save"를 줄 때마다 말합니까? 덕분에 – Jack

관련 문제