CoreData 5

[Core Data] Delete Rule을 이해하고 적절하게 사용해보자!

이번 포스팅에서는 제가 Core Data를 사용하여 Relationship을 만들 때, 항상 그냥 지나쳤던 Delete Rule에 대해서 이해하고, 이를 적절히 사용하는 방법에 대해 정리하려고 합니다. NSDeleteRule 우선 Delete Rule! 애플 공식 문서를 먼저 확인해보면 NSDeleteRule이라는 Enumeration으로 정의되어 있는 것을 확인할 수 있습니다. enum NSDeleteRule : UInt, @unchecked Sendable 정의되어 있는 case들을 살펴보면 noActionDeleteRule nullifyDeleteRule cascadeDeleteRule denyDeleteRule 모두 Core Data의 model editor에서 Relationship을 생성하고,..

CoreData 2023.01.26

CoreData ) Core Data stack에 대해서

Core Data stack은 Core Data의 이점을 모두 가져가며 Core Data를 사용하기 위해 필수적으로 알아야 할 부분이라고 생각됩니다. 이번 포스팅에서는 Core Data stack을 이루고 있는 클래스들을 공식문서를 바탕으로 정리해보도록 하겠습니다! 우선 Core Data stack의 이해를 위해 정리해볼 클래스들을 나열해보자면, NSManagedObjectModel NSPersistentStoreCoordinator NSPersistentStore NSManagedObjectContext NSPersistentContainer 이정도가 있겠습니다. 하나하나 알아보도록 하겠습니다. NSManagedObjectModel NSManagedObjectModel, Core Data 앱 개발을 시..

CoreData 2022.05.06

CoreData ) NSSecureCoding (정말정말정말 간단하게 알아봄)

CoreData의 Transformable 타입을 알아보다가 NSSecureCoding이라는 녀석을 만나고 한번 살펴보다가 엄청난 Objective-C 개념들을 만나고 우선은 공식문서의 내용에 대해서만 정리하도록 마음먹었습니다. 😅 😅 😅 NSSecureCoding? A protocol that enables encoding and decoding in a manner that is robust against object substitution attacks. - Apple Developer Document - Object Substitution 공격에 맞서기 위한 강력한 Encoding, Decoding 방식을 가능하게하는 프로토콜입니다. 음.... 직접 코드로 작성하며 이 NSSecureCoding이..

CoreData 2022.05.04

CoreData ) .xcdatamodeld?

.xcdatamodeld 파일 CoreData를 활용하여 Data Model을 만들면 .xcdatamodeld 확장자를 가진 파일을 쉽게 찾아볼 수 있습니다. 이번 포스팅에서는 .xcdatamodeld 파일이 어떤 역할을 하는지에 대해 정리해보려고 합니다. d 의 의미 .xcdatamodeld 에서 .xcdatamodel 이라면, datamodel 확장자 같은데, 뒤에 d가 하나 더 붙으면서 이 의미가 궁금해지게 만들고 있습니다. .xcdatamodeld 에서 d의 의미는 document (Document Package) 라는 의미를 가지고 있습니다. (Document Package에 대한 설명은 아래의 참고문서에 남겨놓겠습니다.) 즉, 우리는 CoreData를 사용할 때, 이 Versioning을 지원..

CoreData 2022.04.26

NSFetchRequest with NSPredicate

NSPredicate? Fetch 작업이나, in-memory filtering 작업을 할 때, 검색에 대한 제약 사항을 논리적인 조건들(Logical conditions)로 정의할 수 있는 class입니다. 그 중 대표적인 용도가 CoreData의 NSFetchRequest를 할 때, NSPredicate의 조건에 충족하는 객체들만을 필터링하여 받아올 수 있습니다. NSFetchRequest의 predicate 프로퍼티 그래서 NSFetchRequest의 공식 문서에 가보면, predicate라는 프로퍼티가 있는것을 확인할 수 있습니다. The predicate instance constrains the selection of objects the NSFetchRequest instance is to ..

CoreData 2022.04.12