diff --git a/Sources/ChainedClauseBuilder.swift b/Sources/ChainedClauseBuilder.swift index 432cdbb..7974877 100644 --- a/Sources/ChainedClauseBuilder.swift +++ b/Sources/ChainedClauseBuilder.swift @@ -45,6 +45,7 @@ public protocol QueryChainableBuilderType { var queryClauses: [QueryClause] { get set } } +@available(OSX 10.12, *) public protocol SectionMonitorBuilderType { associatedtype ObjectType: DynamicObject @@ -85,6 +86,7 @@ public struct QueryChainBuilder: QueryCha // MARK: - SectionMonitorChainBuilder +@available(OSX 10.12, *) public struct SectionMonitorChainBuilder: SectionMonitorBuilderType { // MARK: SectionMonitorBuilderType @@ -113,11 +115,13 @@ public extension From { ) } + @available(OSX 10.12, *) public func sectionBy(_ sectionKeyPath: KeyPathString) -> SectionMonitorChainBuilder { return self.sectionBy(sectionKeyPath, { $0 }) } + @available(OSX 10.12, *) public func sectionBy(_ sectionKeyPath: KeyPathString, _ sectionIndexTransformer: @escaping (_ sectionName: String?) -> String?) -> SectionMonitorChainBuilder { return .init( @@ -270,6 +274,7 @@ public extension QueryChainBuilder { } } +@available(OSX 10.12, *) public extension SectionMonitorChainBuilder { public func `where`(_ clause: Where) -> SectionMonitorChainBuilder { diff --git a/Sources/DynamicObject.swift b/Sources/DynamicObject.swift index 664d013..a79d68f 100644 --- a/Sources/DynamicObject.swift +++ b/Sources/DynamicObject.swift @@ -78,12 +78,7 @@ extension NSManagedObject: DynamicObject { public class func cs_fromRaw(object: NSManagedObject) -> Self { - @inline(__always) - func forceCast(_ value: Any) -> D { - - return value as! D - } - return forceCast(object) + return unsafeDowncast(object, to: self) } public static func cs_matches(object: NSManagedObject) -> Bool {