             return associatedValueOrDefault(&attributeMapKey, defaultValue: [:])
         }
         set {
-            objc_setAssociatedObject(self, &attributeMapKey, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC)
+            objc_setAssociatedObject(self, &attributeMapKey, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
         }
     }
     

    }
    
    func attribute<T: NSManagedObject>() -> T {
        if let object = managedObjectModel()?.attributeEntityDescriptions[NSStringFromClass(T.self)] as? T {
            return object
        }
        let object = T(entity: self.entityDescription(T)!.attributeEntityDescription(), insertIntoManagedObjectContext: nil)
        managedObjectModel()?.attributeEntityDescriptions[NSStringFromClass(T.self)] = object

            return associatedValueOrDefault(&comparisonMapKey, defaultValue: [:])
        }
        set {
            objc_setAssociatedObject(self, &comparisonMapKey, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
        }
    }
}
