zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

iOS swift Generics 通用类型

ios 类型 swift 通用 generics
2023-09-14 09:04:14 时间

1.官网文档

Generics – The Swift Programming Language

2.举例Moya

@frozen public enum Result<Success, Failure> where Failure : Error {

    /// A success, storing a `Success` value.
    case success(Success)

    /// A failure, storing a `Failure` value.
    case failure(Failure)
    static func testMoyaSmscodeAPI() {
        
        let loginProvitder = MoyaProvider<HFAPI>(stubClosure: MoyaProvider.immediatelyStub)
        
        loginProvitder.request(.smscode("25q.com","register")) { result in
            print(result)
            switch result {
            
            case let .success(moyaResponse):
                let statusCode = moyaResponse.statusCode // Int - 200, 401, 500, etc
                let data = String.init(data: moyaResponse.data, encoding: String.Encoding.utf8)
                print(data ?? "no data")
            case .failure(_):
                break
            }
        }
    }

3.举例:bytesToHexStr

extension Data {
//MARK: Data转十六进制字符串
    /// Create hexadecimal string representation of `Data` object.
    ///
    /// - returns: `String` representation of this `Data` object.

    func hexadecimal() -> String {
        return map { String(format: "%02x", $0) }
            .joined(separator: "-")
    }
}

extension Array where Element == UInt8 {
//MARK: bytes[UInt8]转十六进制字符串
    /// Create hexadecimal string representation of `Data` object.
    ///
    /// - returns: `String` representation of this `Data` object.

    func toHexStr() -> String {
        let data:Data = Data.init(bytes: self)
        return data.hexadecimal()
    }
}