2015-01-14 4 views
1

나는 다음과 같은 코드가 있습니다마법 기록은

Person *person = [Person MR_findFirstByAttribute:@"FirstName" 
            withValue:@"Forrest"]; 
NSLog("Person:%@",person);// age = 20 
person.age = 25; 
NSLog("Person:%@",[Person MR_findFirstByAttribute:@"FirstName" 
            withValue:@"Forrest"]);// age = 25 

은 내가 persion = 25 설정하면 MagicalRecord도 저장소에 저장 것을 보았다. 가끔 person 만 저장하려는 경우 에 저장하지 마십시오. 어떻게 할 수 있습니까? 감사

+0

당신이 객체의 복사본을 만드는 시도가? 감사합니다. –

+0

. 하지만 어떻게? 죄송합니다. 코어 데이터를 처음 접해 보았습니다. –

+0

영구 저장소가 메모리 내 저장소가 아닌 한 모든 생성 된 개체가 디스크에 유지됩니다. 당신이 그들을 사용하여 마친 후에 저장하지 않으려는 개체를 삭제할 수 있습니다 – Volker

답변

1

설정 person.age은 영구 저장소에 새 값을 저장하지 않습니다. 이 값은 person 개체가있는 NSManagedObjectContext을 저장 한 경우에만 저장됩니다 (Magical Record save 메서드 중 하나를 사용하면 가능). 당신은 당신이 컨텍스트를 저장하기 전에 person 객체의 변경 사항을 취소 할 수 있습니다, 그래서 그들은 영구 저장소에 저장되지 않습니다 :

[person.managedObjectContext refreshObject:person mergeChanges:NO]