加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift:自定义Response

发布时间:2020-12-14 06:18:40 所属栏目:百科 来源:网络整理
导读://调用的方法 func refresh(){ // 如果有上拉加载更多 正在执行,则取消它 if self . tableView . mj_footer . isRefreshing () { self . tableView . mj_footer . endRefreshing () } // 根据 tab name 获取帖子列表 TopicListModel . getTopicList ( tab )

//调用的方法

func refresh(){

//如果有上拉加载更多 正在执行,则取消它

if self.tableView.mj_footer.isRefreshing() {

self.tableView.mj_footer.endRefreshing()

}

//根据 tab name 获取帖子列表

TopicListModel.getTopicList(tab){

//自定义的Response

(response:V2ValueResponse<[TopicListModel]>) -> Void in

if response.success {

//var topicList:Array<TopicListModel>?

self.topicList = response.value

self.tableView.reloadData()

}

self.tableView.mj_header.endRefreshing()

}

}


/////////////////////////////////


//MARK: - Request

extension TopicListModel {

/**

获取首页帖子列表


- parameter tab: tab

*/

class func getTopicList(

_ tab: String? = nil,

page:Int = 0,

completionHandler: @escaping (V2ValueResponse<[TopicListModel]>) -> Void

)->Void{


var params:[String:String] = [:]

if let tab = tab {

params["tab"]=tab

}

else {

params["tab"] = "all"

}


var url = V2EXURL

if params["tab"] == "all" && page > 0 {

params.removeAll()

params["p"] = "(page)"

url = V2EXURL + "recent"

}


Alamofire.request(url,parameters: params,headers: MOBILE_CLIENT_HEADERS).responseJiHtml { (response) -> Void in

var resultArray:[TopicListModel] = []

if let jiHtml = response.result.value{

if let aRootNode = jiHtml.xPath("//body/div[@id='Wrapper']/div[@class='content']/div[@class='box']/div[@class='cell item']"){

for aNode in aRootNode {

let topic = TopicListModel(rootNode:aNode)

resultArray.append(topic);

}


}

DispatchQueue.global().async {

}

}


//在自定义的Response里面传值


let t = V2ValueResponse<[TopicListModel]>(value:resultArray,success: response.result.isSuccess)

completionHandler(t);

}

}




/////////////////////////////////


// V2Response.swift


import UIKit


class V2Response: NSObject {

var success:Bool = false

var message:String = "No message"

init(success:Bool,message:String?) {

super.init()

self.success = success

if let message = message{

self.message = message

}

}

init(success:Bool) {

super.init()

self.success = success

}

}


class V2ValueResponse<T>: V2Response {

var value:T?

override init(success: Bool) {

super.init(success: success)

}

override init(success:Bool,message:String?) {

super.init(success:success)

if let message = message {

self.message = message

}

}

convenience init(value:T,success:Bool) {

self.init(success: success)

self.value = value

}

convenience init(value:T,success:Bool,message:String?) {

self.init(value:value,success:success)

if let message = message {

self.message = message

}

}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读