Swift 4 Migration

This commit is contained in:
Robert Payne 2017-06-12 22:12:07 +12:00
parent ff97375b22
commit d31148f449
7 changed files with 35 additions and 21 deletions

View File

@ -302,16 +302,16 @@
isa = PBXProject; isa = PBXProject;
attributes = { attributes = {
LastSwiftUpdateCheck = 0720; LastSwiftUpdateCheck = 0720;
LastUpgradeCheck = 0820; LastUpgradeCheck = 0900;
ORGANIZATIONNAME = "SnapKit Team"; ORGANIZATIONNAME = "SnapKit Team";
TargetAttributes = { TargetAttributes = {
EEBCC9D719CC627D0083B827 = { EEBCC9D719CC627D0083B827 = {
CreatedOnToolsVersion = 6.0; CreatedOnToolsVersion = 6.0;
LastSwiftMigration = 0800; LastSwiftMigration = 0900;
}; };
EEBCC9E119CC627D0083B827 = { EEBCC9E119CC627D0083B827 = {
CreatedOnToolsVersion = 6.0; CreatedOnToolsVersion = 6.0;
LastSwiftMigration = 0800; LastSwiftMigration = 0900;
ProvisioningStyle = Automatic; ProvisioningStyle = Automatic;
}; };
}; };
@ -412,14 +412,20 @@
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@ -463,14 +469,20 @@
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@ -513,6 +525,7 @@
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 4.0;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
}; };
name = Debug; name = Debug;
@ -532,6 +545,7 @@
PRODUCT_NAME = SnapKit; PRODUCT_NAME = SnapKit;
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 4.0;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
}; };
name = Release; name = Release;
@ -545,7 +559,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks @loader_path/../Frameworks @executable_path/../Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks @loader_path/../Frameworks @executable_path/../Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "io.snapkit.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_BUNDLE_IDENTIFIER = "io.snapkit.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 3.0; SWIFT_VERSION = 4.0;
}; };
name = Debug; name = Debug;
}; };
@ -559,7 +573,7 @@
PRODUCT_BUNDLE_IDENTIFIER = "io.snapkit.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_BUNDLE_IDENTIFIER = "io.snapkit.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 3.0; SWIFT_VERSION = 4.0;
}; };
name = Release; name = Release;
}; };

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "0820" LastUpgradeVersion = "0900"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View File

@ -166,7 +166,7 @@ public final class Constraint {
layoutConstraint.label = self.label layoutConstraint.label = self.label
// set priority // set priority
layoutConstraint.priority = self.priority.constraintPriorityTargetValue layoutConstraint.priority = UILayoutPriority(rawValue: self.priority.constraintPriorityTargetValue)
// set constraint // set constraint
layoutConstraint.constraint = self layoutConstraint.constraint = self
@ -243,8 +243,8 @@ public final class Constraint {
layoutConstraint.constant = self.constant.constraintConstantTargetValueFor(layoutAttribute: attribute) layoutConstraint.constant = self.constant.constraintConstantTargetValueFor(layoutAttribute: attribute)
let requiredPriority = ConstraintPriority.required.value let requiredPriority = ConstraintPriority.required.value
if (layoutConstraint.priority < requiredPriority), (self.priority.constraintPriorityTargetValue != requiredPriority) { if (layoutConstraint.priority.rawValue < requiredPriority), (self.priority.constraintPriorityTargetValue != requiredPriority) {
layoutConstraint.priority = self.priority.constraintPriorityTargetValue layoutConstraint.priority = UILayoutPriority(rawValue: self.priority.constraintPriorityTargetValue)
} }
} }
} }

View File

@ -39,10 +39,10 @@ public protocol ConstraintDSL {
extension ConstraintDSL { extension ConstraintDSL {
public func setLabel(_ value: String?) { public func setLabel(_ value: String?) {
objc_setAssociatedObject(self.target, &labelKey, value, .OBJC_ASSOCIATION_COPY_NONATOMIC) objc_setAssociatedObject(self.target as Any, &labelKey, value, .OBJC_ASSOCIATION_COPY_NONATOMIC)
} }
public func label() -> String? { public func label() -> String? {
return objc_getAssociatedObject(self.target, &labelKey) as? String return objc_getAssociatedObject(self.target as Any, &labelKey) as? String
} }
} }

View File

@ -53,37 +53,37 @@ public struct ConstraintViewDSL: ConstraintAttributesDSL {
public var contentHuggingHorizontalPriority: Float { public var contentHuggingHorizontalPriority: Float {
get { get {
return self.view.contentHuggingPriority(for: .horizontal) return self.view.contentHuggingPriority(for: .horizontal).rawValue
} }
set { set {
self.view.setContentHuggingPriority(newValue, for: .horizontal) self.view.setContentHuggingPriority(UILayoutPriority(rawValue: newValue), for: .horizontal)
} }
} }
public var contentHuggingVerticalPriority: Float { public var contentHuggingVerticalPriority: Float {
get { get {
return self.view.contentHuggingPriority(for: .vertical) return self.view.contentHuggingPriority(for: .vertical).rawValue
} }
set { set {
self.view.setContentHuggingPriority(newValue, for: .vertical) self.view.setContentHuggingPriority(UILayoutPriority(rawValue: newValue), for: .vertical)
} }
} }
public var contentCompressionResistanceHorizontalPriority: Float { public var contentCompressionResistanceHorizontalPriority: Float {
get { get {
return self.view.contentCompressionResistancePriority(for: .horizontal) return self.view.contentCompressionResistancePriority(for: .horizontal).rawValue
} }
set { set {
self.view.setContentCompressionResistancePriority(newValue, for: .horizontal) self.view.setContentCompressionResistancePriority(UILayoutPriority(rawValue: newValue), for: .horizontal)
} }
} }
public var contentCompressionResistanceVerticalPriority: Float { public var contentCompressionResistanceVerticalPriority: Float {
get { get {
return self.view.contentCompressionResistancePriority(for: .vertical) return self.view.contentCompressionResistancePriority(for: .vertical).rawValue
} }
set { set {
self.view.setContentCompressionResistancePriority(newValue, for: .vertical) self.view.setContentCompressionResistancePriority(UILayoutPriority(rawValue: newValue), for: .vertical)
} }
} }

View File

@ -66,7 +66,7 @@ public extension LayoutConstraint {
} }
} }
if self.priority != 1000.0 { if self.priority.rawValue != 1000.0 {
description += " ^\(self.priority)" description += " ^\(self.priority)"
} }

View File

@ -542,7 +542,7 @@ class SnapKitTests: XCTestCase {
func testPriorityStride() { func testPriorityStride() {
let highPriority: ConstraintPriority = .high let highPriority: ConstraintPriority = .high
let higherPriority: ConstraintPriority = .high + 1 let higherPriority: ConstraintPriority = ConstraintPriority.high.advanced(by: 1)
XCTAssertEqual(higherPriority.value, highPriority.value + 1) XCTAssertEqual(higherPriority.value, highPriority.value + 1)
} }
} }