swift-extensions 0.0.2

swift-extensions 0.0.2

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2015年5月
SPM支持 SPM

anatoliyv 维护。



  • Anatoliy Voropay

Swift 扩展

不同类别的有用 Swift 扩展。此仓库的主要原因是我在大多数项目中都需要它,并决定与其他开发者分享。

信息: 扩展集合正在更新。如果您想为这个仓库添加一些有用的功能,请发消息给我。

Foundation 框架

NSDate

func isTheSameDay(date: NSDate) -> Bool

用于检查给定的日期是否与 NSDate 相同。

var dateBefore = NSDate(timeIntervalSinceNow: -3600 * 24 - 10)
var dateAfter = NSDate(timeIntervalSinceNow: 3600 * 24 + 10)

NSDate().isTheSameDay(NSDate()) // is true
dateBefore.isTheSameDay(NSDate()) // is false
dateAfter.isTheSameDay(NSDate()) // is false

class func hourlyTimingString(timeInterval: NSTimeInterval?) -> String

用于生成可读的时间间隔字符串。例如,对于超过 1 小时的间隔,为 23:12:24;对于小于 1 小时的间隔,为 23:12。

NSDate.hourlyTimingString(12) // will return '00:12'
NSDate.hourlyTimingString(3600 - 1) // will return '59:59'
NSDate.hourlyTimingString(3600 + 1) // will return '1:00:01'
NSDate.hourlyTimingString(3600 * 67 + 1) // will return '67:00:01'

class func readableTimeInterval(date: NSDate) -> String

用于生成可读的时间间隔字符串。例如,'3 分钟前' 或 '2 天前'。

NSDate.hourlyTimingString(NSDate(timeIntervalSinceNow:3600 - 1)) // 59 minutes ago
NSDate.readableTimeInterval(NSDate(timeIntervalSinceNow:-3600 - 10)) //  1 hour ago
NSDate.readableTimeInterval(NSDate(timeIntervalSinceNow:-3600 * 24 * 5 - 10)) // 5 days ago
NSDate.readableTimeInterval(NSDate(timeIntervalSinceNow:-3600 * 24 * 31 * 5 - 10)) // 5 months ago

class func readableDate(date: NSDate) -> String

用于获取过去日期的人读日期。对于小于 24 小时的日期,将返回确切的 小时:分钟。对于小于 1 周的日期,将返回 星期几。最后,对于所有其他日期将返回以 en_US_POSIX 格式表示的日期。

NSObject

func delay(delay: Double, closure:()->()) 将在延迟后执行闭包。闭包将在主线程中调用

NSDate.delay(5, closure: {
    println("After 5 seconds")
})

NSString

class func isEmailValid(email: String) -> Bool

如果电子邮件有效,则返回 true。此验证仅检查字符串是否符合正则表达式,它不会检查域名扩展。这也不能保证它是真实的电子邮件地址。

NSString.isEmailValid("not [email protected]") // false
NSString.isEmailValid("[email protected]") // false
NSString.isEmailValid("notvalid@gmail.") // false

NSString.isEmailValid("[email protected]") // true
NSString.isEmailValid("[email protected]") // true

UIKit 框架

UIColor

class func colorWithHex(hex: String) -> UIColor?

这将从十六进制字符串创建 UIColor。如果十六进制字符串包含 # 前缀或没有,它都将正常工作。如果字符串无法转换为 UIColor(例如,当颜色字符串长度小于 6 个符号时),它将返回 nil。返回的 UIColor 的 alpha 成分总是 1。

UIColor.colorWithHex("#FFAA66")

UIView

var width: CGFloat // Returns frames width
var height: CGFloat // Returns frames height
var x: CGFloat // Returns frames origin x
var y: CGFloat // Returns frames origin y
var centerX: CGFloat // Returns frames center x
var centerY: CGFloat // Returns frames center y
func setWidth(width: CGFloat) // Update frames width
func setHeight(height: CGFloat) // Returns frames height
func setX(x: CGFloat) // Updates frames origin x position
func setY(y: CGFloat) // Updates frames origin y position
func setCenterX(x: CGFloat) // Updates frames center x position
func setCenterY(y: CGFloat)  // Updates frames center y position

Swift

数组

修改后缀函数 removeObject(object: U)

将对象从数组中移除。如果数组中存在多个相同的对象,它也会将其移除。

func contains(object: T) -> Bool

如果数组包含对象,则返回 true。对象应遵守 Equatable 协议。

整型 (Int)

var isEven: Bool // Returns true if number is even
var isOdd: Bool // Returns true if number is odd
var isPositive: Bool // Returns true if number is positive
var isNegative: Bool // Returns true if number is negative
var isZero: Bool // Returns true if number is zero
var isPOZ: Bool // Returns true if number is positive or zero
func double() -> Double // Casts to double
func float() -> Float // Casts to float

func times(closure: () -> ()不定)

此方法将重复 不定 次。可能的用法

12.times { 
    println("Hello worlds") 
}