У меня есть временный необязательный атрибут addedImages в Swift как часть отношения «один ко многим» внутри управляемого объекта с атрибутом и методами доступа:
…
@NSManaged public var addedImages: NSSet?
…
@objc(addAddedImagesObject:)
@NSManaged public func addToAddedImages(_ value: MMImage)
@objc(removeAddedImagesObject:)
@NSManaged public func removeFromAddedImages(_ value: MMImage)
@objc(addAddedImages:)
@NSManaged public func addToAddedImages(_ values: NSSet)
@objc(removeAddedImages:)
@NSManaged public func removeFromAddedImages(_ values: NSSet)
…
Неудачный код запускается в последовательной очереди и завершается сбоем с ошибкой EXC_BAD_ACCESS.
let backgroundContext = NSManagedObjectContext(concurrencyType: NSManagedObjectContextConcurrencyType.privateQueueConcurrencyType)
backgroundContext.performAndWait {
print("\(self.addedImages?.count ?? 0) added images")
self.addToAddedImages(image)
}
Это работает без проблем, когда я определяю добавленные изображения как непереходные. Я не уверен, что это нормальное поведение, и как я могу это исправить. Спасибо за помощь.
self
управляемым объектом в другом контексте? - person Willeke   schedule 28.10.2017