JKSwiftExtension刻帚,測試用例在 FoundationExtensionViewController.swift 對應(yīng)的控制器里面
目錄:
1益兄、Double+Extension
2立肘、Int+Extension
3坑填、Int64+Extension
4澜搅、CGFloat+Extension
5、Character+Extension
6声离、Bool+Extension
7章办、UInt+Extension
8锉走、Float+Extension
一、Double+Extension
// MARK:- 一藕届、Double 的基本轉(zhuǎn)換
extension Double {
// MARK: 1.1挪蹭、轉(zhuǎn) Int
/// 轉(zhuǎn) Int
public var int: Int { return Int(self) }
// MARK: 1.2、轉(zhuǎn) CGFloat
/// 轉(zhuǎn) CGFloat
public var cgFloat: CGFloat { return CGFloat(self) }
// MARK: 1.3休偶、轉(zhuǎn) Int64
/// 轉(zhuǎn) Int64
public var int64: Int64 { return Int64(self) }
// MARK: 1.4梁厉、轉(zhuǎn) Float
/// 轉(zhuǎn) Float
public var float: Float { return Float(self) }
// MARK: 1.5、轉(zhuǎn) String
/// 轉(zhuǎn) String
public var string: String { return String(self) }
// MARK: 1.6踏兜、轉(zhuǎn) NSNumber
/// 轉(zhuǎn) NSNumber
public var number: NSNumber { return NSNumber.init(value: self) }
// MARK: 1.7词顾、轉(zhuǎn) Double
/// 轉(zhuǎn) Double
public var double: Double { return self }
}
二、Int+Extension
// MARK:- 一碱妆、Int 與其他類型的轉(zhuǎn)換
public extension Int {
// MARK: 1.1肉盹、轉(zhuǎn) Double
/// 轉(zhuǎn) Double
var toDouble: Double { return Double(self) }
// MARK: 1.2、轉(zhuǎn) Float
/// 轉(zhuǎn) Float
var toFloat: Float { return Float(self) }
// MARK: 1.3疹尾、轉(zhuǎn) Int64
/// 轉(zhuǎn) Int64
var toInt64: Int64 { return Int64(self) }
// MARK: 1.4上忍、轉(zhuǎn) CGFloat
/// 轉(zhuǎn) CGFloat
var toCGFloat: CGFloat { return CGFloat(self) }
// MARK: 1.5、轉(zhuǎn) String
/// 轉(zhuǎn) String
var toString: String { return String(self) }
// MARK: 1.6航棱、轉(zhuǎn) UInt
/// 轉(zhuǎn) UInt
var toUInt: UInt { return UInt(self) }
// MARK: 1.7睡雇、轉(zhuǎn) range
/// 轉(zhuǎn) range
var range: CountableRange<Int> { return 0..<self }
}
// MARK:- 二、其他常用方法
public extension Int {
// MARK: 2.1饮醇、取區(qū)間內(nèi)的隨機數(shù),如取 0..<10 之間的隨機數(shù)
/// 取區(qū)間內(nèi)的隨機數(shù)秕豫,如取 0..<10 之間的隨機數(shù)
/// - Parameter within: 0..<10
/// - Returns: 返回區(qū)間內(nèi)的隨機數(shù)
static func random(within: Range<Int>) -> Int {
let delta = within.upperBound - within.lowerBound
return within.lowerBound + Int(arc4random_uniform(UInt32(delta)))
}
// MARK: 2.2朴艰、轉(zhuǎn)換萬單位
/// 轉(zhuǎn)換萬的單位
/// - Parameter scale: 小數(shù)點后舍入值的位數(shù)观蓄,默認 1 位
/// - Returns: 返回萬的字符串
func toTenThousandString(scale: Int = 1) -> String {
if self < 0 {
return "0"
} else if self <= 9999 {
return "\(self)"
} else {
let doub = CGFloat(self) / 10000
let str = String(format: "%.\(scale)f", doub)
let start_index = str.index(str.endIndex, offsetBy: -1)
let suffix = String(str[start_index ..< str.endIndex])
if suffix == "0" {
let toIndex = str.index(str.endIndex, offsetBy: -2)
return String(str[str.startIndex ..< toIndex]) + "萬"
} else {
return str + "萬"
}
}
}
}
三、Int64+Extension
// MARK:- 一祠墅、Int64 與其他類型的轉(zhuǎn)換
public extension Int64 {
// MARK: 1.1侮穿、轉(zhuǎn) Int
/// 轉(zhuǎn) Int
var toInt: Int {
return Int(self)
}
// MARK: 1.2、轉(zhuǎn) CGFloat
/// 轉(zhuǎn) CGFloat
var toCGFloat: CGFloat {
return CGFloat(self)
}
// MARK: 1.3毁嗦、轉(zhuǎn) Float
/// 轉(zhuǎn) Float
var toFloat: Float {
return Float(self)
}
// MARK: 1.4亲茅、轉(zhuǎn) Double
/// 轉(zhuǎn) Double
var toDouble: Double {
return Double(self)
}
// MARK: 1.5、轉(zhuǎn) String
/// 轉(zhuǎn) String
var toString: String {
return String(self)
}
// MARK: 1.6狗准、轉(zhuǎn) NSNumber
/// 轉(zhuǎn) NSNumber
var toNumber: NSNumber {
return NSNumber.init(value: self)
}
// MARK: 1.7克锣、轉(zhuǎn) Int64
/// 轉(zhuǎn) Int64
var toInt64: Int64 {
return self
}
}
四、CGFloat+Extension
// MARK:- 一腔长、CGFloat 的基本轉(zhuǎn)換
extension CGFloat {
// MARK: 1.1袭祟、轉(zhuǎn) Int
/// 轉(zhuǎn) Int
public var int: Int { return Int(self) }
// MARK: 1.2、轉(zhuǎn) CGFloat
/// 轉(zhuǎn) CGFloat
public var cgFloat: CGFloat { return self }
// MARK: 1.3捞附、轉(zhuǎn) Int64
/// 轉(zhuǎn) Int64
public var int64: Int64 { return Int64(self) }
// MARK: 1.4巾乳、轉(zhuǎn) Float
/// 轉(zhuǎn) Float
public var float: Float { return Float(self) }
// MARK: 1.5、轉(zhuǎn) String
/// 轉(zhuǎn) String
public var string: String { return String(self.double) }
// MARK: 1.6鸟召、轉(zhuǎn) NSNumber
/// 轉(zhuǎn) NSNumber
public var number: NSNumber { return NSNumber.init(value: self.double) }
// MARK: 1.7胆绊、轉(zhuǎn) Double
/// 轉(zhuǎn) Double
public var double: Double { return Double(self) }
}
// MARK:- 二、角度和弧度相互轉(zhuǎn)換
extension CGFloat {
// MARK: 角度轉(zhuǎn)弧度
/// 角度轉(zhuǎn)弧度
/// - Returns: 弧度
public func degreesToRadians() -> CGFloat {
return (.pi * self) / 180.0
}
// MARK: 弧度轉(zhuǎn)角度
/// 角弧度轉(zhuǎn)角度
/// - Returns: 角度
public func radiansToDegrees() -> CGFloat {
return (self * 180.0) / .pi
}
}
五欧募、Character+Extension
// MARK:- 一辑舷、Character 與其他類型的轉(zhuǎn)換
public extension Character {
// MARK: 1.1、Character 轉(zhuǎn) String
/// Character 轉(zhuǎn) String
var toString: String { return String(self) }
// MARK: 1.2槽片、Character 轉(zhuǎn) Int
/// Character 轉(zhuǎn) Int
var toInt: Int? { return Int(String(self)) }
}
// MARK:- 二何缓、常用的屬性和方法
public extension Character {
// MARK: 2.1、判斷是不是 Emoji 表情
/// 判斷是不是 Emoj 表情
var isEmoji: Bool {
return String(self).includesEmoji()
}
}
六还栓、Bool+Extension
// MARK:- 一碌廓、基本的擴展
public extension Bool {
// MARK: 1.1、Bool 值轉(zhuǎn) Int
/// Bool 值轉(zhuǎn) Int
var toInt: Int { return self ? 1 : 0 }
}
七剩盒、UInt+Extension
// MARK:- 一谷婆、UInt 與其他類型的轉(zhuǎn)換
extension UInt {
// MARK: 1.1、轉(zhuǎn) Int
/// 轉(zhuǎn) Int
public var toInt: Int { return Int(self) }
}
八辽聊、Float+Extension
// MARK:- 一纪挎、Float 與其他類型的轉(zhuǎn)換
extension Float {
// MARK: 1.1、轉(zhuǎn) Int
/// 轉(zhuǎn) Int
public var int: Int { return Int(self) }
// MARK: 1.2跟匆、轉(zhuǎn) CGFloat
/// 轉(zhuǎn) CGFloat
public var cgFloat: CGFloat { return CGFloat(self) }
// MARK: 1.3异袄、轉(zhuǎn) Int64
/// 轉(zhuǎn) Int64
public var int64: Int64 { return Int64(self) }
// MARK: 1.4、轉(zhuǎn) Double
/// 轉(zhuǎn) Double
public var double: Double { return Double(self) }
// MARK: 1.5玛臂、轉(zhuǎn) String
/// 轉(zhuǎn) String
public var string: String { return String(self) }
// MARK: 1.6烤蜕、轉(zhuǎn) NSNumber
/// 轉(zhuǎn) NSNumber
public var number: NSNumber { return NSNumber.init(value: self) }
// MARK: 1.7封孙、轉(zhuǎn) Float
/// 轉(zhuǎn) Float
public var float: Float { return self }
}
// MARK:- 二、其他常用的方法
public extension Float {
// MARK: 2.1讽营、浮點數(shù)四舍五入
/// 浮點數(shù)四舍五入,places
/// - Parameter places: 小數(shù)保留的位數(shù)
/// - Returns: 保留后的小數(shù)
func roundTo(places: Int) -> Float {
let divisor = pow(10.0, Float(places))
return (self * divisor).rounded() / divisor
}
}