From 9cd3b6c879eaca19452626c2b63193a02d340793 Mon Sep 17 00:00:00 2001 From: John Rommel Estropia Date: Sat, 10 Jun 2017 22:13:32 +0900 Subject: [PATCH] code cleanup --- Sources/CoreStoreSchema.swift | 17 ------- Sources/Value.swift | 92 +++++++---------------------------- 2 files changed, 18 insertions(+), 91 deletions(-) diff --git a/Sources/CoreStoreSchema.swift b/Sources/CoreStoreSchema.swift index 11a4a9c..6c763b0 100644 --- a/Sources/CoreStoreSchema.swift +++ b/Sources/CoreStoreSchema.swift @@ -488,12 +488,6 @@ public final class CoreStoreSchema: DynamicSchema { for (attributeName, customGetterSetters) in (customGetterSetterByKeyPaths ?? [:]) where customGetterSetters.getter != nil || customGetterSetters.setter != nil { - var rawAttributes: [objc_property_attribute_t] = [ - objc_property_attribute_t(name: "T@", value: attributeName), - objc_property_attribute_t(name: "N", value: ""), - objc_property_attribute_t(name: "C", value: ""), - objc_property_attribute_t(name: "&", value: "") - ] if let getter = customGetterSetters.getter { let getterName = "\(attributeName)" @@ -505,7 +499,6 @@ public final class CoreStoreSchema: DynamicSchema { CoreStore.abort("Could not dynamically add getter method \"\(getterName)\" to class \(cs_typeName(managedObjectClass))") } - rawAttributes.append(objc_property_attribute_t(name: "G", value: getterName)) } if let setter = customGetterSetters.setter { @@ -518,17 +511,7 @@ public final class CoreStoreSchema: DynamicSchema { CoreStore.abort("Could not dynamically add setter method \"\(setterName)\" to class \(cs_typeName(managedObjectClass))") } - rawAttributes.append(objc_property_attribute_t(name: "S", value: setterName)) } -// rawAttributes.append("\(attributeName)".withCString({ objc_property_attribute_t(name: "V", value: $0) })) - -// rawAttributes.withUnsafeBufferPointer { (buffer) in -// -// guard class_addProperty(managedObjectClass, attributeName, buffer.baseAddress, UInt32(buffer.count)) else { -// -// CoreStore.abort("Could not dynamically add property \"\(attributeName)\" to class \(cs_typeName(managedObjectClass))") -// } -// } } let newSelector = NSSelectorFromString("cs_keyPathsForValuesAffectingValueForKey:") diff --git a/Sources/Value.swift b/Sources/Value.swift index 758836e..99ea32c 100644 --- a/Sources/Value.swift +++ b/Sources/Value.swift @@ -181,7 +181,7 @@ public enum ValueContainer { "Attempted to access \(cs_typeName(O.self))'s value outside it's designated queue." ) CoreStore.assert( - object.rawObject!.isEditableInContext() == true, + self.isTransient || object.rawObject!.isEditableInContext() == true, "Attempted to update a \(cs_typeName(O.self))'s value from outside a transaction." ) let customSetter = (self.customSetter ?? { $1($2) }) @@ -222,19 +222,11 @@ public enum ValueContainer { internal private(set) lazy var getter: CoreStoreManagedObject.CustomGetter? = cs_lazy { [unowned self] in - let keyPath = self.keyPath guard let customGetter = self.customGetter else { - guard let _ = self.customSetter else { - - return nil - } - return { (_ id: Any) -> Any? in - - let rawObject = id as! CoreStoreManagedObject - return rawObject.getValue(forKvcKey: keyPath) - } + return nil } + let keyPath = self.keyPath return { (_ id: Any) -> Any? in let rawObject = id as! CoreStoreManagedObject @@ -253,19 +245,11 @@ public enum ValueContainer { internal private(set) lazy var setter: CoreStoreManagedObject.CustomSetter? = cs_lazy { [unowned self] in - let keyPath = self.keyPath guard let customSetter = self.customSetter else { - guard let _ = self.customGetter else { - - return nil - } - return { (_ id: Any, _ newValue: Any?) -> Void in - - let rawObject = id as! CoreStoreManagedObject - rawObject.setValue(newValue, forKvcKey: keyPath) - } + return nil } + let keyPath = self.keyPath return { (_ id: Any, _ newValue: Any?) -> Void in let rawObject = id as! CoreStoreManagedObject @@ -400,7 +384,7 @@ public enum ValueContainer { "Attempted to access \(cs_typeName(O.self))'s value outside it's designated queue." ) CoreStore.assert( - object.rawObject!.isEditableInContext() == true, + self.isTransient || object.rawObject!.isEditableInContext() == true, "Attempted to update a \(cs_typeName(O.self))'s value from outside a transaction." ) let customSetter = (self.customSetter ?? { $1($2) }) @@ -440,19 +424,11 @@ public enum ValueContainer { internal private(set) lazy var getter: CoreStoreManagedObject.CustomGetter? = cs_lazy { [unowned self] in - let keyPath = self.keyPath guard let customGetter = self.customGetter else { - guard let _ = self.customSetter else { - - return nil - } - return { (_ id: Any) -> Any? in - - let rawObject = id as! CoreStoreManagedObject - return rawObject.getValue(forKvcKey: keyPath) - } + return nil } + let keyPath = self.keyPath return { (_ id: Any) -> Any? in let rawObject = id as! CoreStoreManagedObject @@ -471,19 +447,11 @@ public enum ValueContainer { internal private(set) lazy var setter: CoreStoreManagedObject.CustomSetter? = cs_lazy { [unowned self] in - let keyPath = self.keyPath guard let customSetter = self.customSetter else { - guard let _ = self.customGetter else { - - return nil - } - return { (_ id: Any, _ newValue: Any?) -> Void in - - let rawObject = id as! CoreStoreManagedObject - rawObject.setValue(newValue, forKvcKey: keyPath) - } + return nil } + let keyPath = self.keyPath return { (_ id: Any, _ newValue: Any?) -> Void in let rawObject = id as! CoreStoreManagedObject @@ -674,7 +642,7 @@ public enum TransformableContainer { "Attempted to access \(cs_typeName(O.self))'s value outside it's designated queue." ) CoreStore.assert( - object.rawObject!.isEditableInContext() == true, + self.isTransient || object.rawObject!.isEditableInContext() == true, "Attempted to update a \(cs_typeName(O.self))'s value from outside a transaction." ) let customSetter = (self.customSetter ?? { $1($2) }) @@ -714,19 +682,11 @@ public enum TransformableContainer { internal private(set) lazy var getter: CoreStoreManagedObject.CustomGetter? = cs_lazy { [unowned self] in - let keyPath = self.keyPath guard let customGetter = self.customGetter else { - guard let _ = self.customSetter else { - - return nil - } - return { (_ id: Any) -> Any? in - - let rawObject = id as! CoreStoreManagedObject - return rawObject.getValue(forKvcKey: keyPath) - } + return nil } + let keyPath = self.keyPath return { (_ id: Any) -> Any? in let rawObject = id as! CoreStoreManagedObject @@ -739,19 +699,11 @@ public enum TransformableContainer { internal private(set) lazy var setter: CoreStoreManagedObject.CustomSetter? = cs_lazy { [unowned self] in - let keyPath = self.keyPath guard let customSetter = self.customSetter else { - guard let _ = self.customGetter else { - - return nil - } - return { (_ id: Any, _ newValue: Any?) -> Void in - - let rawObject = id as! CoreStoreManagedObject - rawObject.setValue(newValue, forKvcKey: keyPath) - } + return nil } + let keyPath = self.keyPath return { (_ id: Any, _ newValue: Any?) -> Void in let rawObject = id as! CoreStoreManagedObject @@ -876,7 +828,7 @@ public enum TransformableContainer { "Attempted to access \(cs_typeName(O.self))'s value outside it's designated queue." ) CoreStore.assert( - object.rawObject!.isEditableInContext() == true, + self.isTransient || object.rawObject!.isEditableInContext() == true, "Attempted to update a \(cs_typeName(O.self))'s value from outside a transaction." ) let customSetter = (self.customSetter ?? { $1($2) }) @@ -916,19 +868,11 @@ public enum TransformableContainer { internal private(set) lazy var getter: CoreStoreManagedObject.CustomGetter? = cs_lazy { [unowned self] in - let keyPath = self.keyPath guard let customGetter = self.customGetter else { - guard let _ = self.customSetter else { - - return nil - } - return { (_ id: Any) -> Any? in - - let rawObject = id as! CoreStoreManagedObject - return rawObject.getValue(forKvcKey: keyPath) - } + return nil } + let keyPath = self.keyPath return { (_ id: Any) -> Any? in let rawObject = id as! CoreStoreManagedObject