OsTools 1.5.3

OsTools 1.5.3

osApps 维护。



OsTools 1.5.3

  • osfunapps

OsTools

CI Status Version License Platform

此模块作为 osApps iOS 开发的基础工具集。

示例函数和签名

/// Will run a function after a delay. The delayed function will run on the main thread
public static func asyncMainTimedFunc(_ funcc: @escaping (() -> ()), _ seconds: Int = 0, millis: Int = 0) -> DispatchWorkItem {
    let task = DispatchWorkItem {
        funcc()
    }
    DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + .seconds(seconds) + .milliseconds(millis), execute: task)
    return task
}

/// Will run a function after a delay. The delayed function will run on a background dq
public static func asyncTimedFunc(_ funcc: @escaping (() -> ()),
                           seconds: Int = 0,
                           millis: Int = 0,
                           qos: DispatchQoS.QoSClass = .utility) -> DispatchWorkItem {
    let task = DispatchWorkItem {
        funcc()
    }
    DispatchQueue.global(qos: qos).asyncAfter(deadline: DispatchTime.now() + .seconds(seconds) + .milliseconds(millis), execute: task)
    
    return task
}

/// Wll run a function after a delay on the main thread
public static func asyncMainTimedTask(task: DispatchWorkItem,
                               seconds: Int = 0,
                               millis: Int = 0) {
    DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(seconds) + .milliseconds(millis), execute: task)
}

/// Wll run a function after a delay on a background thread
public static func asyncTimedTask(task: DispatchWorkItem,
                           seconds: Int = 0,
                            millis: Int = 0,
                            qos: DispatchQoS.QoSClass = .utility) {
    DispatchQueue.global(qos: qos).asyncAfter(deadline: DispatchTime.now() + .seconds(seconds) + .milliseconds(millis), execute: task)
}

/// Will return true if the char is of a language
public static func isLanguageChar(possibleChar: String) -> Bool {
    if(possibleChar.count > 1){
        return false
    }
    return (possibleChar.range(of: "[\\p{Alnum},\\s#\\-.]+", options: .regularExpression, range: nil, locale: nil) != nil)
}

/// Will return the top most view controller in the back stack
public static func getLastViewController(_ viewController: UIViewController) -> UIViewController? {
    let controllersCount = viewController.navigationController?.viewControllers.count
    if(controllersCount != nil) {
        return viewController.navigationController?.viewControllers[controllersCount! - 1]
    } else {
        return nil
    }
}

安装

OsTools 通过 CocoaPods 提供使用。要安装它,只需将以下行添加到 Podfile 中

pod 'OsTools'

作者

osApps,[email protected]

许可证

OsTools 可在 MIT 许可下使用。更多信息请参阅 LICENSE 文件。