diff --git a/SharedCode/KeyCodable.swift b/SharedCode/KeyCodable.swift index 511afd8..3bbff62 100644 --- a/SharedCode/KeyCodable.swift +++ b/SharedCode/KeyCodable.swift @@ -22,6 +22,12 @@ extension KeyCodable where Self: ManagedObject, Keys.RawValue == String { didAccessValueForKey(key.rawValue) } + public func accessingValueForKey(key: Keys, @noescape block: () -> ()) { + willAccessValueForKey(key) + block() + didAccessValueForKey(key) + } + public func willChangeValueForKey(key: Keys) { (self as ManagedObject).willChangeValueForKey(key.rawValue) } @@ -42,6 +48,12 @@ extension KeyCodable where Self: ManagedObject, Keys.RawValue == String { return changedValues()[key.rawValue] } + public func changingValueForKey(key: Keys, @noescape block: () -> ()) { + willChangeValueForKey(key) + block() + didChangeValueForKey(key) + } + public func committedValueForKey(key: Keys) -> AnyObject? { return committedValuesForKeys([key.rawValue])[key.rawValue] }