From 8fc933a5c2cee28b6d6752a58de94ef7efe37a9c Mon Sep 17 00:00:00 2001 From: Robert Payne Date: Wed, 3 Aug 2016 14:39:47 +1200 Subject: [PATCH] Fix up legacy deployment and availability of APIs --- Source/Constraint.swift | 10 +-- Source/ConstraintView+Extensions.swift | 74 +++++++++++-------- .../ConstraintViewController+Extensions.swift | 8 +- Source/ConstraintViewDSL.swift | 5 +- 4 files changed, 56 insertions(+), 41 deletions(-) diff --git a/Source/Constraint.swift b/Source/Constraint.swift index 45f6014..8836ae1 100644 --- a/Source/Constraint.swift +++ b/Source/Constraint.swift @@ -192,7 +192,7 @@ public class Constraint { // add constraints #if SNAPKIT_DEPLOYMENT_LEGACY && (os(iOS) || os(tvOS)) if #available(iOS 8.0, *) { - NSLayoutConstraint.activateConstraints(newLayoutConstraints) + NSLayoutConstraint.activate(newLayoutConstraints) } else { installOnView?.addConstraints(newLayoutConstraints) } @@ -226,8 +226,8 @@ public class Constraint { #if SNAPKIT_DEPLOYMENT_LEGACY && !os(OSX) if #available(iOS 8.0, *) { - NSLayoutConstraint.deactivateConstraints(installedLayoutConstraints) - } else if let installedOnView = installInfo.view { + NSLayoutConstraint.deactivate(installedLayoutConstraints) + } else if let installedOnView = installInfo?.view { installedOnView.removeConstraints(installedLayoutConstraints) } #else @@ -240,12 +240,12 @@ public class Constraint { internal func activateIfNeeded() { guard self.installInfo != nil else { - let _ = self.installIfNeeded() + _ = self.installIfNeeded() return } #if SNAPKIT_DEPLOYMENT_LEGACY guard #available(iOS 8.0, OSX 10.10, *) else { - self.installIfNeeded() + _ = self.installIfNeeded() return } #endif diff --git a/Source/ConstraintView+Extensions.swift b/Source/ConstraintView+Extensions.swift index cd08dd0..7f78824 100644 --- a/Source/ConstraintView+Extensions.swift +++ b/Source/ConstraintView+Extensions.swift @@ -30,102 +30,116 @@ public extension ConstraintView { - @available(*, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public var snp_left: ConstraintItem { return self.snp.left } - @available(*, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public var snp_top: ConstraintItem { return self.snp.top } - @available(*, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public var snp_right: ConstraintItem { return self.snp.right } - @available(*, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public var snp_bottom: ConstraintItem { return self.snp.bottom } - @available(*, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public var snp_leading: ConstraintItem { return self.snp.leading } - @available(*, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public var snp_trailing: ConstraintItem { return self.snp.trailing } - @available(*, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public var snp_width: ConstraintItem { return self.snp.width } - @available(*, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public var snp_height: ConstraintItem { return self.snp.height } - @available(*, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public var snp_centerX: ConstraintItem { return self.snp.centerX } - @available(*, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public var snp_centerY: ConstraintItem { return self.snp.centerY } - @available(*, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public var snp_baseline: ConstraintItem { return self.snp.baseline } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") + public var snp_lastBaseline: ConstraintItem { return self.snp.lastBaseline } + + @available(iOS, deprecated:0.40.0, message:"Please use newer snp.* syntax.") + @available(iOS 8.0, OSX 10.11, *) public var snp_firstBaseline: ConstraintItem { return self.snp.firstBaseline } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(iOS, deprecated:0.40.0, message:"Please use newer snp.* syntax.") + @available(iOS 8.0, OSX 10.11, *) public var snp_leftMargin: ConstraintItem { return self.snp.leftMargin } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(iOS, deprecated:0.40.0, message:"Please use newer snp.* syntax.") + @available(iOS 8.0, *) public var snp_topMargin: ConstraintItem { return self.snp.topMargin } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(iOS, deprecated:0.40.0, message:"Please use newer snp.* syntax.") + @available(iOS 8.0, *) public var snp_rightMargin: ConstraintItem { return self.snp.rightMargin } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(iOS, deprecated:0.40.0, message:"Please use newer snp.* syntax.") + @available(iOS 8.0, *) public var snp_bottomMargin: ConstraintItem { return self.snp.bottomMargin } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(iOS, deprecated:0.40.0, message:"Please use newer snp.* syntax.") + @available(iOS 8.0, *) public var snp_leadingMargin: ConstraintItem { return self.snp.leadingMargin } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(iOS, deprecated:0.40.0, message:"Please use newer snp.* syntax.") + @available(iOS 8.0, *) public var snp_trailingMargin: ConstraintItem { return self.snp.trailingMargin } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(iOS, deprecated:0.40.0, message:"Please use newer snp.* syntax.") + @available(iOS 8.0, *) public var snp_centerXWithinMargins: ConstraintItem { return self.snp.centerXWithinMargins } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(iOS, deprecated:0.40.0, message:"Please use newer snp.* syntax.") + @available(iOS 8.0, *) public var snp_centerYWithinMargins: ConstraintItem { return self.snp.centerYWithinMargins } - @available(*, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public var snp_edges: ConstraintItem { return self.snp.edges } - @available(*, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public var snp_size: ConstraintItem { return self.snp.size } - @available(*, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public var snp_center: ConstraintItem { return self.snp.center } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(iOS, deprecated:0.40.0, message:"Please use newer snp.* syntax.") + @available(iOS 8.0, *) public var snp_margins: ConstraintItem { return self.snp.margins } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(iOS, deprecated:0.40.0, message:"Please use newer snp.* syntax.") + @available(iOS 8.0, *) public var snp_centerWithinMargins: ConstraintItem { return self.snp.centerWithinMargins } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public func snp_prepareConstraints(_ closure: @noescape(make: ConstraintMaker) -> Void) -> [Constraint] { return self.snp.prepareConstraints(closure) } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public func snp_makeConstraints(_ closure: @noescape(make: ConstraintMaker) -> Void) { self.snp.makeConstraints(closure) } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public func snp_remakeConstraints(_ closure: @noescape(make: ConstraintMaker) -> Void) { self.snp.remakeConstraints(closure) } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public func snp_updateConstraints(_ closure: @noescape(make: ConstraintMaker) -> Void) { self.snp.updateConstraints(closure) } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(*, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public func snp_removeConstraints() { self.snp.removeConstraints() } diff --git a/Source/ConstraintViewController+Extensions.swift b/Source/ConstraintViewController+Extensions.swift index f609f8f..c7b18fe 100644 --- a/Source/ConstraintViewController+Extensions.swift +++ b/Source/ConstraintViewController+Extensions.swift @@ -27,22 +27,22 @@ public extension ConstraintViewController { - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(iOS, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public var topLayoutGuideTop: ConstraintItem { return self.snp.topLayoutGuideTop } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(iOS, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public var topLayoutGuideBottom: ConstraintItem { return self.snp.topLayoutGuideBottom } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(iOS, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public var bottomLayoutGuideTop: ConstraintItem { return self.snp.bottomLayoutGuideTop } - @available(iOS, deprecated:0.30.0, message:"Please use newer snp.* syntax.") + @available(iOS, deprecated:0.40.0, message:"Please use newer snp.* syntax.") public var bottomLayoutGuideBottom: ConstraintItem { return self.snp.bottomLayoutGuideBottom } diff --git a/Source/ConstraintViewDSL.swift b/Source/ConstraintViewDSL.swift index 2a2331d..86f0bf9 100644 --- a/Source/ConstraintViewDSL.swift +++ b/Source/ConstraintViewDSL.swift @@ -70,16 +70,17 @@ public struct ConstraintViewDSL { return ConstraintItem(target: self.view, attributes: ConstraintAttributes.CenterY) } - @available(iOS, deprecated:0.30.0, message:"Please use migrated .lastBaseline") + @available(*, deprecated:0.40.0, message:"Please use migrated .lastBaseline") public var baseline: ConstraintItem { return ConstraintItem(target: self.view, attributes: ConstraintAttributes.Baseline) } + @available(iOS 8.0, OSX 10.11, *) public var lastBaseline: ConstraintItem { return ConstraintItem(target: self.view, attributes: ConstraintAttributes.Baseline) } - @available(iOS 8.0, *) + @available(iOS 8.0, OSX 10.11, *) public var firstBaseline: ConstraintItem { return ConstraintItem(target: self.view, attributes: ConstraintAttributes.FirstBaseline) }