Clash of the Optionals
[]
The Atomic Birdhouse
For Swift, “not optional” means the property must not be nil at any time after initialization. For Core Data, “not optional” means the property must not be nil when you are saving changes in Core Data. Core Data initialized the object, but it doesn’t know Swift’s rules and it doesn’t care about nil values until you save changes.