Understanding the differences between SwiftData and Core Data
SwiftData has recently been introduced and has room to grow. It has some current limitations that Apple is likely to address in the near future.
Presently, SwiftData is missing some key features that are present in Core Data and allow some of the most advanced use cases:
- There is no equivalent of
NSCompoundPredicate
, so it is not possible to create complex predicates. - There is no replacement for
NSFetchedResultController
for executing queries and reacting to changes. - There is no support for derived attributes. Derived attributes can be defined and managed using the Core Data model editor in Xcode.
In Core Data, derived attributes can be based on the following:
- Calculation: Computed based on an expression that you specify. This expression can reference other attributes of the entity, as well as attributes of related entities.
- Storage: While derived attributes are computed, their values...