본문 바로가기
  • SDXL 1.0 + 한복 LoRA
  • SDXL 1.0 + 한복 LoRA
Development/iPhone

[옛 글] [CoreData] Relationship에 관한 Tip - 연관된 Entity 함께 지우기

by 마즈다 2013. 7. 19.
반응형

최초 작성일 : 2012/04/09 16:04 


현재 사용 중인 Xcode 버전이 4.3인데 바뀐 Xcode로 작업을 하려니

삽질이 이만 저만이 아니다.
대부분 아주 간단한 것인데 애플의 문서를 샅샅이 살펴보지 않는 한은
쉽게 발견하기 힘든 것들이기도 하다.

오늘은 Entity간의 Relationship에 대한 이야기다.

일단 Entity간의 구조는 이렇다.




보는대로 이메일과 첨부파일을 관리할 Entity이다.
당연히 EmailData와 AttachFiles의 관계는 1:N이다.

이 것이 Insert시에는 EmailData의 attachFiles에 NSSet 형태로 집어넣고

[emailData.managedObjectContext save:&error]만 해주면 첨부파일들이

자동으로 AttachFiles에 저장이 된다.


그런데 삭제시에는 요상하게 EmailData만 삭제가 되고 AttachFiles의 관련

데이터들은 삭제가 안될뿐더러 emailData 값이 NULL로 바뀌는 것이다.


이거 일단 emailData를 지우고 나중에 AttachFiles에서 emailData가 NULL인

놈들만 따로 지워야 하나...하고 고민하다가 결국엔 답을 찾았다.


아주 간단한 답을...-.-


일단 부모가 되는 EmailData의 Relationship인 attachFiles는

오른쪽 설정창에서 Delete Rule을 Cascade로 해준다.





그리고 자식에 해당하는 AttachFiles의 Relationship인 mailData는
Delete Rule을 Nullify로 해준다.




요렇게 하니 깔끔하게 처리된다~

반응형