When NSManagedObjectContext stops triggering concurrency errors in Swift 6.2 (Xcode 26), the reason isn't an improved compiler — it's a change in how Core Data's SDK imports the type. In Xcode 26, NSManagedObjectContext's header now carries NS_SWIFT_SENDABLE and NS_SWIFT_NONISOLATED annotations, making it a Sendable type in
Table of contents
The ProblemDid Swift 6.2’s Concurrency Analysis Actually Improve?Isolating the Problem with Real CodeFinding the Answer in Core Data’s InterfaceWhat Are NS_SWIFT_SENDABLE and NS_SWIFT_NONISOLATED?Applying These Macros to Our Own Objective-C ClassesRevisiting the Original ProblemClosing ThoughtsSort: