Add necessary changes to compile with Swift2.3
This commit is contained in:
parent
226c8ed15a
commit
dbd07e93bc
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0710"
|
||||
LastUpgradeVersion = "0800"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue