Add necessary changes to compile with Swift2.3

This commit is contained in:
Fabio Teles 2016-08-24 17:14:38 -07:00
parent 226c8ed15a
commit dbd07e93bc
10 changed files with 77 additions and 46 deletions

View File

@ -444,14 +444,16 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0730;
LastUpgradeCheck = 0710;
LastUpgradeCheck = 0800;
ORGANIZATIONNAME = "Goktug Yilmaz";
TargetAttributes = {
B5DC86A81C0ED06700972D0A = {
CreatedOnToolsVersion = 7.1;
LastSwiftMigration = 0800;
};
B5DC86B21C0ED06700972D0A = {
CreatedOnToolsVersion = 7.1;
LastSwiftMigration = 0800;
};
};
};
@ -705,8 +707,10 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@ -751,8 +755,10 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@ -771,6 +777,7 @@
GCC_WARN_UNUSED_VARIABLE = YES;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
@ -791,6 +798,7 @@
PRODUCT_BUNDLE_IDENTIFIER = com.gbf.EZSwiftExtensions.EZSwiftExtensions;
PRODUCT_NAME = EZSwiftExtensions;
SKIP_INSTALL = YES;
SWIFT_VERSION = 2.3;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
@ -809,6 +817,7 @@
PRODUCT_BUNDLE_IDENTIFIER = com.gbf.EZSwiftExtensions.EZSwiftExtensions;
PRODUCT_NAME = EZSwiftExtensions;
SKIP_INSTALL = YES;
SWIFT_VERSION = 2.3;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
@ -820,6 +829,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.gbf.EZSwiftExtensions.EZSwiftExtensionsTests;
PRODUCT_NAME = EZSwiftExtensionsTest;
SWIFT_VERSION = 2.3;
};
name = Debug;
};
@ -830,6 +840,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.gbf.EZSwiftExtensions.EZSwiftExtensionsTests;
PRODUCT_NAME = EZSwiftExtensionsTest;
SWIFT_VERSION = 2.3;
};
name = Release;
};

View File

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

View File

@ -216,11 +216,12 @@
E1839DAD1BF79335002212C6 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0700;
LastUpgradeCheck = 0800;
ORGANIZATIONNAME = "Goktug Yilmaz";
TargetAttributes = {
E1839DB41BF79335002212C6 = {
CreatedOnToolsVersion = 7.0.1;
LastSwiftMigration = 0800;
};
};
};
@ -340,8 +341,10 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@ -385,8 +388,10 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@ -405,6 +410,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
@ -419,6 +425,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.gbf.EZSwiftExtensions;
PRODUCT_NAME = EZSwiftExtensionsExample;
SWIFT_VERSION = 2.3;
};
name = Debug;
};
@ -431,6 +438,7 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.gbf.EZSwiftExtensions;
PRODUCT_NAME = EZSwiftExtensionsExample;
SWIFT_VERSION = 2.3;
};
name = Release;
};

View File

@ -106,7 +106,7 @@ class EZSwiftExtensionsTestsArray: XCTestCase {
}
func testMapFilter() {
let filtered = numberArray.mapFilter { number -> String? in
let filtered = numberArray.flatMap { number -> String? in
return number == 1 ? String(number) : nil
}

View File

@ -36,8 +36,8 @@ public class BlockWebView: UIWebView, UIWebViewDelegate {
didFinishLoad? (webView.request!)
}
public func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
didFailLoad? (webView.request!, error!)
public func webView(webView: UIWebView, didFailLoadWithError error: NSError) {
didFailLoad? (webView.request!, error)
}
public func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {

View File

@ -15,13 +15,13 @@ public extension NSBundle {
// NSBundle.loadNib("ViewXibName", owner: self) //some UIView subclass
// self.addSubview(self.contentView)
public class func loadNib(name: String, owner: AnyObject!) {
NSBundle.mainBundle().loadNibNamed(name, owner: owner, options: nil)[0]
NSBundle.mainBundle().loadNibNamed(name, owner: owner, options: nil)?[0]
}
/// EZSE: load xib
/// Usage: let view: ViewXibName = NSBundle.loadNib("ViewXibName")
public class func loadNib<T>(name: String) -> T? {
return NSBundle.mainBundle().loadNibNamed(name, owner: nil, options: nil)[0] as? T
return NSBundle.mainBundle().loadNibNamed(name, owner: nil, options: nil)?[0] as? T
}
}

View File

@ -9,7 +9,7 @@
// swiftlint:disable line_length
// swiftlint:disable trailing_whitespace
import Foundation
import UIKit
extension NSURL {
/// EZSE: Returns convert query to Dictionary
@ -57,7 +57,7 @@ extension NSURL {
if self == url {
return true
}
if self.scheme.lowercaseString != url.scheme.lowercaseString {
if scheme?.lowercaseString != url.scheme?.lowercaseString {
return false
}
if let host1 = self.host, host2 = url.host {

View File

@ -21,8 +21,9 @@ extension UIButton {
/// EZSwiftExtensions
public func setBackgroundColor(color: UIColor, forState: UIControlState) {
UIGraphicsBeginImageContext(CGSize(width: 1, height: 1))
CGContextSetFillColorWithColor(UIGraphicsGetCurrentContext(), color.CGColor)
CGContextFillRect(UIGraphicsGetCurrentContext(), CGRect(x: 0, y: 0, width: 1, height: 1))
guard let context = UIGraphicsGetCurrentContext() else { return }
CGContextSetFillColorWithColor(context, color.CGColor)
CGContextFillRect(context, CGRect(x: 0, y: 0, width: 1, height: 1))
let colorImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
self.setBackgroundImage(colorImage, forState: forState)

View File

@ -26,83 +26,94 @@ extension UIImage {
}
/// EZSE: scales image
public class func scaleTo(image image: UIImage, w: CGFloat, h: CGFloat) -> UIImage {
let newSize = CGSize(width: w, height: h)
UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0)
image.drawInRect(CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height))
let newImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()
public class func scaleTo(image image: UIImage, w: CGFloat, h: CGFloat) -> UIImage! {
let size = CGSize(width: w, height: h)
UIGraphicsBeginImageContextWithOptions(size, false, 0.0)
image.drawInRect(CGRect(x: 0, y: 0, width: size.width, height: size.height))
let outputImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage
return outputImage
}
/// EZSE Returns resized image with width. Might return low quality
public func resizeWithWidth(width: CGFloat) -> UIImage {
public func resizeWithWidth(width: CGFloat) -> UIImage! {
let aspectSize = CGSize (width: width, height: aspectHeightForWidth(width))
UIGraphicsBeginImageContext(aspectSize)
self.drawInRect(CGRect(origin: CGPoint.zero, size: aspectSize))
let img = UIGraphicsGetImageFromCurrentImageContext()
drawInRect(CGRect(origin: CGPoint.zero, size: aspectSize))
let outputImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return img
return outputImage
}
/// EZSE Returns resized image with height. Might return low quality
public func resizeWithHeight(height: CGFloat) -> UIImage {
public func resizeWithHeight(height: CGFloat) -> UIImage! {
let aspectSize = CGSize (width: aspectWidthForHeight(height), height: height)
UIGraphicsBeginImageContext(aspectSize)
self.drawInRect(CGRect(origin: CGPoint.zero, size: aspectSize))
let img = UIGraphicsGetImageFromCurrentImageContext()
drawInRect(CGRect(origin: CGPoint.zero, size: aspectSize))
let outputImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return img
return outputImage
}
/// EZSE:
public func aspectHeightForWidth(width: CGFloat) -> CGFloat {
return (width * self.size.height) / self.size.width
return (width * size.height) / size.width
}
/// EZSE:
public func aspectWidthForHeight(height: CGFloat) -> CGFloat {
return (height * self.size.width) / self.size.height
return (height * size.width) / size.height
}
/// EZSE: Returns cropped image from CGRect
public func croppedImage(bound: CGRect) -> UIImage? {
guard self.size.width > bound.origin.x else {
guard size.width > bound.origin.x else {
print("EZSE: Your cropping X coordinate is larger than the image width")
return nil
}
guard self.size.height > bound.origin.y else {
guard size.height > bound.origin.y else {
print("EZSE: Your cropping Y coordinate is larger than the image height")
return nil
}
let scaledBounds: CGRect = CGRect(x: bound.x * self.scale, y: bound.y * self.scale, width: bound.w * self.scale, height: bound.h * self.scale)
let imageRef = CGImageCreateWithImageInRect(self.CGImage, scaledBounds)
let croppedImage: UIImage = UIImage(CGImage: imageRef!, scale: self.scale, orientation: UIImageOrientation.Up)
guard let cgImage = CGImage else {
print("EZSE: UIImage not backde by CGImage")
return nil
}
let scaledBounds: CGRect = CGRect(x: bound.x * scale, y: bound.y * scale, width: bound.w * scale, height: bound.h * scale)
let imageRef = CGImageCreateWithImageInRect(cgImage, scaledBounds)
let croppedImage: UIImage = UIImage(CGImage: imageRef!, scale: scale, orientation: UIImageOrientation.Up)
return croppedImage
}
/// EZSE: Use current image for pattern of color
public func withColor(tintColor: UIColor) -> UIImage {
UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale)
let context = UIGraphicsGetCurrentContext()
CGContextTranslateCTM(context, 0, self.size.height)
public func withColor(tintColor: UIColor) -> UIImage! {
UIGraphicsBeginImageContextWithOptions(size, false, scale)
guard let context = UIGraphicsGetCurrentContext() else {
print("EZSE: Context creation failed")
return self
}
guard let cgImage = CGImage else {
print("EZSE: UIImage not backde by CGImage")
return self
}
CGContextTranslateCTM(context, 0, size.height)
CGContextScaleCTM(context, 1.0, -1.0)
CGContextSetBlendMode(context, CGBlendMode.Normal)
let rect = CGRect(x: 0, y: 0, width: self.size.width, height: self.size.height) as CGRect
CGContextClipToMask(context, rect, self.CGImage)
let rect = CGRect(x: 0, y: 0, width: size.width, height: size.height)
CGContextClipToMask(context, rect, cgImage)
tintColor.setFill()
CGContextFillRect(context, rect)
let newImage = UIGraphicsGetImageFromCurrentImageContext() as UIImage
let outputImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage
return outputImage
}
///EZSE: Returns the image associated with the URL
@ -120,7 +131,7 @@ extension UIImage {
}
///EZSE: Returns an empty image //TODO: Add to readme
public class func blankImage() -> UIImage {
public class func blankImage() -> UIImage! {
UIGraphicsBeginImageContextWithOptions(CGSize(width: 1, height: 1), false, 0.0)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

View File

@ -448,12 +448,12 @@ extension UIView {
// MARK: Render Extensions
extension UIView {
/// EZSwiftExtensions
public func toImage () -> UIImage {
public func toImage () -> UIImage! {
UIGraphicsBeginImageContextWithOptions(bounds.size, opaque, 0.0)
drawViewHierarchyInRect(bounds, afterScreenUpdates: false)
let img = UIGraphicsGetImageFromCurrentImageContext()
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return img
return image
}
}