关于ios:Moya-书写简化思路-2-enum-的-task

应用 Moya 做 iOS 的网络申请,

我的项目中有一百多个网络申请办法,就建设对应的 enum 条目

其中 task 的填写,个别 case 下,再这样


enum NetHud{
    case modify_content(R_create_content)
    
    // ...
}


extension NetHud{
   public var task: Task {
         case .modify_content(dat):
            return .requestJSONEncodable(dat)
           
           
         // ...
         // 重复缮写

   }


}

应用 Mirror, 革新


enum NetHud{
    case modify_content(R_create_content)
    
    // ...
}


extension NetHud{
   var obj: Encodable?{
        let mirror = Mirror(reflecting: self)
        if let val = mirror.children.first?.value as? Encodable{
            return val
        }
        else{
            return nil
        }
    }


   public var task: Task {
         default:
            if let dat = obj{
                return .requestJSONEncodable(dat)
            }
            else{
                // 不会走,
                // 省略书写
                return .requestPlain
            }
        }

   }


}

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据