美文网首页
swift nil判断 字典转模型 afn封装

swift nil判断 字典转模型 afn封装

作者: 晓风f残月 | 来源:发表于2019-06-05 11:42 被阅读0次

  1nil,空字符串
解决办法一:OC

#define UENSStringIsEmpty(str) ((str==nil)||[str isEqualToString:@"(null)"]||([str length]==0)||[str isEqualToString:@""])

解决办法二:swift

//value 是AnyObject类型是因为有可能所传的值不是String类型,有可能是其他任意的类型。
func UEStringIsEmpty(value: AnyObject?) -> Bool {
    //首先判断是否为nil
    if (nil == value) {
        //对象是nil,直接认为是空串
        return true
    }else{
        //然后是否可以转化为String
        if let myValue  = value as? String{
            //然后对String做判断
            return myValue == "" || myValue == "(null)" || 0 == myValue.count
        }else{
            //字符串都不是,直接认为是空串
            return true
        }
    }
}

  2字典转模型

/// 字典 -> 模型
///
/// - Parameters:
///   - type: 类型
///   - data: 字典数据
/// - Returns: 模型结果
/// - Throws: 错误处理
func JSONModel<T>(_ type: T.Type, withKeyValues data:[String:Any]) throws -> T where T: Decodable {
    let jsonData = try JSONSerialization.data(withJSONObject: data, options: [])
    let model = try JSONDecoder().decode(type, from: jsonData)
    return model
}

/// 字典数组 -> 模型数组
///
/// - Parameters:
///   - type: 类型
///   - datas: 字典组数
/// - Returns: 模型数组结果
/// - Throws: 错误处理
func JSONModels<T>(_ type: T.Type, withKeyValuesArray datas: [[String:Any]]) throws -> [T]  where T: Decodable {
    var temp: [T] = []
    for data in datas {
        let model = try JSONModel(type, withKeyValues: data)
        temp.append(model)
    }
    return temp
}

  3afn封装

static let shareInstance : UENetworkManager = {
        
        let baseUrl = NSURL(string: "xxx")!
        let manager = UENetworkManager.init(baseURL: baseUrl as URL, sessionConfiguration: URLSessionConfiguration.default)
        manager.requestSerializer.setValue("application/json", forHTTPHeaderField: "Accept")
        manager.responseSerializer.acceptableContentTypes = NSSet(objects: "text/plain", "text/json", "application/json","text/javascript","text/html", "text/xml") as? Set<String>
        return manager
    }()
/**
     get请求
     
     - parameter urlString:  请求的url
     - parameter parameters: 请求的参数
     - parameter success:    请求成功回调
     - parameter failure:    请求失败回调
     */
    class func get(urlString:String,parameters:AnyObject?,success:((_ responseObject:AnyObject?) -> Void)?,failure:((_ error:NSError) -> Void)?) -> Void {
        
        UENetworkManager.shareInstance.get(urlString, parameters: parameters, progress: { (progress) in }, success: { (task, responseObject) in
            
            //如果responseObject不为空时
            if responseObject != nil {
                success!(responseObject as AnyObject?)
            }
            
        }, failure: { (task, error) in
            
            failure!(error as NSError)
            
        })
    }
/**
     post请求
     
     - parameter urlString:  请求的url
     - parameter parameters: 请求的参数
     - parameter success:    请求成功回调
     - parameter failure:    请求失败回调
     */
    class func post(urlString:String,parameters:AnyObject?,success:((_ responseObject:AnyObject?) -> Void)?,failure:((_ error:NSError) -> Void)?) -> Void {
        UENetworkManager.shareInstance.post(urlString, parameters: param, progress: { (progress) in
            
        }, success: { (task, responseObject) in
            
            //如果responseObject不为空时
            if responseObject != nil {
                success!(responseObject as AnyObject?)
            }
            
        }) { (task, error) in
            
            failure!(error as NSError)
        }
        
        
    }

相关文章

  • swift nil判断 字典转模型 afn封装

    1nil,空字符串解决办法一:OC 解决办法二:swift 2字典转模型 3afn封装

  • Swift 5.0 使用MJExtension 字典转模型

    记录下swift怎么使用MJExtension 字典转模型1.普通的字典转模型 2.字典数组嵌套转模型

  • iOS-模型

    在开发中,经常使用到模型,通常做法就是字典转模型 字典转模型的过程最好封装在模型内部 模型应该提供一个可以传入字典...

  • Object-C字典转模型

    参考资料: 字典转模型详解 字典转模型简介 把字典转成一个类,我们把这个类叫着模型。模型是对字典的一种抽象和封装,...

  • Swift ZHCodable (Codable)字典转模型封装

    地址:https://github.com/haoburongyi/ZHCodable[https://githu...

  • swift4 字典->模型-相互转换

    1.swift4出现了Codable协议,只要继承该协议,便可使用系统的模型转换,字典转模型,模型转字典。 2.本...

  • Swift 遇到的坑

    在swift中字典转模型,创建的model 继承自 NSObject,如果是swift 3 ,则在模型中创建属性不...

  • iOS(UI)之字典转模型3

    字典转模型的过程最好封装在模型内部 模型应该提供一个可以传入字典参数的构造方法 - (instancetype)i...

  • Swift - 字典转模型

    Swift - 字典转模型 Tips: 本文小试牛刀,Demo使用的是官方API来进行JSON与Model之间的转...

  • Swift 字典转模型

    这里探讨字典转模型中模型的类型单一模型模型嵌套 (模型中包含模型 || 模型中包含模型数组) Swfit的字典转模...

网友评论

      本文标题:swift nil判断 字典转模型 afn封装

      本文链接:https://www.haomeiwen.com/subject/qspjxctx.html