2012-02-23 2 views
4

내 NSManagedObject 하위 클래스에서 엔티티의 NSSet으로 분할되는 NSString ivar가 있습니다. 문자열을 설정할 수있게하고 싶습니다. 저장을 호출하는 동안 분할을 수행하십시오. 그러나 문자열 만 설정하면 더티 플래그 또는 저장 필요가 트리거되지 않습니다.NSManagedObject를 더티로 표시 할 수있는 방법이 있습니까?

+0

이 질문에 대한 답변을 찾으셨습니까? – SAHM

답변

0

"ivar"대신 "attribute"를 사용한다고 가정합니다. 문자열을 세트로 분할 한 다음 세트를 저장하는 방식은 논쟁의 여지가 있지만 여기서는 그다지 문제가되지 않는다고 생각합니다.

왜 관리 대상을 "더티 (dirty)"로 표시해야합니까? 이것은 실제로 필요하지 않습니다. 그냥 더러워 지거나하지 말아라.

관리 대상의 "dirtyiness"를 어떻게 확인했는지 모르겠지만 특정 시점에서 저장을 트리거하려고한다고 가정합니다. 이 시점에서 자신 만의 BOOL "dirtyFlag"를 확인하여 적절하게 설정할 수 있고 계속 점검 할 수 있습니다.

항상 이러한 종류의 작업을 명시 적으로 만드는 것이 좋습니다. 코드가 더 읽기 쉽고 투명 해집니다.

+0

아니요, MOC 파일이 아니라 내 하위 클래스의 ivar입니다. 데이터베이스에 전혀 접근하지 않습니다. -willSave에서 문자열을 분할하고 싶습니다. – jarjar

+0

문자열에서 분리 할 부분을 저장합니까? – Mundi

+13

다음은 더러운 객체를 표시하려는 경우입니다. 즉, 후속 NSManagedObjectContextObjectsDidChangeNotification에서 업데이트 된 객체로 표시됩니다. 그런 다음 NSFetchedResultsControllers가 후보가되어이를 다시 평가합니다. – rgeorge

0

NSManagedObject 하위 클래스에 + (BOOL)contextShouldIgnoreUnmodeledPropertyChanges을 구현하고 기본값 (YES) 대신 NO을 반환 할 수 있습니다.

이렇게하면 이 데이터베이스의 실제 열에 의해 나타내지 않더라도 변경 등록 정보를 통지해야합니다.

관련 문제