ios – NSURLSession didCompleteWithError:如何确定它是什么任务?

ios – NSURLSession didCompleteWithError:如何确定它是什么任务?,第1张

概述我有一个符合NSURLSession委托的类用于下载数据并且在完成调用多个服务时遇到问题他们调用方法func URLSession(会话:NSURLSession,任务:NSURLSessionTask,didCompleteWithError错误:NSError?),结果在这里被解析和处理以返回到正确的视图控制器. 我怎么知道结果是什么会话或任务,所以我可以调用正确的视图控制器? import 我有一个符合NSURLSession委托的类用于下载数据并且在完成调用多个服务时遇到问题他们调用方法func URLSession(会话:NSURLSession,任务:NSURLSessionTask,dIDCompleteWithError错误:NSError?),结果在这里被解析和处理以返回到正确的视图控制器.

我怎么知道结果是什么会话或任务,所以我可以调用正确的视图控制器?

import Foundationclass Support{// MARK - PropertIEsvar ID: Int!var SoftekID: String!var Subject: String!var LastUpdate: String!var LastUpdatedBy: String!var Priority: Int!var Impact: Int!var SupportType: String!var importance: Int!// MARK: Generalinit() {    self.ID = 0    self.softekID = ""    self.Subject = ""    self.LastUpdate = ""    self.LastUpdatedBy = ""    self.Priority = 0    self.Impact = 0    self.SupportType = ""    self.importance = 0}func getSupportTickets(){let sp = SuppportProvIDer()    sp.getSupportTickets()}}class SuppportProvIDer: NSObject,NSURLSessionDelegate,NSURLSessionDataDelegate,NSURLSessionTaskDelegate{// MARK: - PropertIEsvar mData: NSMutableData?var session: NSURLSession!overrIDe init(){    super.init()    prepareConnection()}// MARK: - Methodsfunc prepareConnection(){    session = NSURLSession(configuration: NSURLSessionConfiguration.defaultSessionConfiguration(),delegate: self,delegateQueue:nil)}func getSupportTickets(){    var request = NSMutableURLRequest(URL: NSURL(string: "http://10.0.58.137/ISOWeb.UI/API/CSMobile/GetSupportTickets?PageNumber=0&PagingSize=10&TicketStatus=Priority")!,cachePolicy: NSURLRequestCachePolicy.UseProtocolCachePolicy,timeoutInterval: 20.0)    let task =  session.dataTaskWithRequest(request)    mData = NSMutableData()    task.resume()}func getHelpinformation(){    var request = NSMutableURLRequest(URL: NSURL(string: "http://10.0.58.137/ISOWeb.UI/API/CSMobile/GetHelpinformation")!,timeoutInterval: 20.0)    let task = session.dataTaskWithRequest(request)    mData = NSMutableData()    task.resume()}func URLSession(session: NSURLSession,dataTask: NSURLSessionDataTask,dIDReceiveResponse response: NSURLResponse,completionHandler: (NSURLSessionResponsedisposition) -> VoID) {    mData!.length = 0    completionHandler(NSURLSessionResponsedisposition.Allow)}func URLSession(session: NSURLSession,dIDReceiveData data: NSData) {    mData!.appendData(data)}func URLSession(session: NSURLSession,task: NSURLSessionTask,dIDCompleteWithError error: NSError?) {    if error != nil{        println("An error has occured completing the request")    }else{        //Result for method: getSupportTickets        var value = Nsstring(bytes: mData!.mutableBytes,length: mData!.length,enCoding: NSUTF8StringEnCoding)        var jError: NSError?        if let JsONResult: Array<NSDictionary> = NSJsONSerialization.JsONObjectWithData(mData!,options: NSJsONReadingOptions.AllowFragments,error: &jError) as? Array<NSDictionary> {            if JsONResult.count > 0 {               var arr = Array<Support>()                for dict in JsONResult{                    let item = Support()                    if (dict["ID"] as? Int != nil) {                        item.ID = dict["ID"] as! Int                    }else {                        item.ID = 0                    }                    if (dict["SoftekID"] as? String != nil) {                        item.softekID = dict["SoftekID"] as! String                    }else {                        item.softekID = ""                    }                    if (dict["Subject"] as? String != nil) {                        item.Subject = dict["Subject"] as! String                    }else {                        item.Subject = ""                    }                    if (dict["LastUpdate"] as? String != nil) {                          item.LastUpdate = dict["LastUpdate"] as! String                    }else {                        item.LastUpdate = ""                    }                    if (dict["LastUpdatedBy"] as? String != nil) {                         item.LastUpdatedBy = dict["LastUpdatedBy"] as! String                    }else {                        item.LastUpdatedBy = ""                    }                    if (dict["Priority"] as? Int != nil) {                         item.Priority = dict["Priority"] as! Int                    }else {                         item.Priority = 0                    }                    if (dict["Impact"] as? Int != nil) {                        item.Impact = dict["Impact"] as! Int                    }else {                        item.Impact = 0                    }                    if (dict["SupportType"] as? String != nil) {                         item.SupportType = dict["SupportType"] as! String                    }else {                        item.SupportType = ""                    }                    if (dict["importance"] as? Int != nil) {                        item.importance = dict["importance"] as! Int                    }else {                        item.importance = 0                    }                    arr.append(item)                }            }        }        //Result for method: getHelpinformation        //How to kNow to which task holds the result?    }}}

UPDATE

import Foundationclass CSSupport{// MARK - PropertIEsvar ID: Int!var SoftekID: String!var Subject: String!var LastUpdate: String!var LastUpdatedBy: String!var Priority: Int!var Impact: Int!var SupportType: String!var importance: Int!// MARK: Generalinit() {    self.ID = 0    self.softekID = ""    self.Subject = ""    self.LastUpdate = ""    self.LastUpdatedBy = ""    self.Priority = 0    self.Impact = 0    self.SupportType = ""    self.importance = 0}}class Support:NSObject,NSURLSessionTaskDelegate{// MARK: - PropertIEsvar mData: NSMutableData?var session: NSURLSession! overrIDe init(){    super.init()    var configuration = NSURLSessionConfiguration.defaultSessionConfiguration()    session = NSURLSession(configuration:configuration,delegateQueue:nil)}// MARK: - Methodsfunc getSupportTickets(){    var request = NSMutableURLRequest(URL: NSURL(string: "http://10.0.58.137/ISOWeb.UI/API/CSMobile/GetSupportTickets?PageNumber=0&PagingSize=10&TicketStatus=Priority")!,timeoutInterval: 20.0)    let task =  session.dataTaskWithRequest(request)    mData = NSMutableData()    task.resume()}func URLSession(session: NSURLSession,dIDCompleteWithError error: NSError?) {    if error != nil{        println("An error has occured completing the request")    }else{         var value = Nsstring(bytes: mData!.mutableBytes,enCoding: NSUTF8StringEnCoding)         var jError: NSError?        switch task.taskIDentifIEr {        case 1:            if let JsONResult: Array<NSDictionary> = NSJsONSerialization.JsONObjectWithData(mData!,error: &jError) as? Array<NSDictionary> {                if JsONResult.count > 0 {                    var arr = Array<CSSupport>()                    for dict in JsONResult{                        let item = CSSupport()                        if (dict["ID"] as? Int != nil) {                            item.ID = dict["ID"] as! Int                        }else {                            item.ID = 0                        }                        if (dict["SoftekID"] as? String != nil) {                            item.softekID = dict["SoftekID"] as! String                        }else {                            item.softekID = ""                        }                        if (dict["Subject"] as? String != nil) {                            item.Subject = dict["Subject"] as! String                        }else {                            item.Subject = ""                        }                        if (dict["LastUpdate"] as? String != nil) {                            item.LastUpdate = dict["LastUpdate"] as! String                        }else {                            item.LastUpdate = ""                        }                        if (dict["LastUpdatedBy"] as? String != nil) {                            item.LastUpdatedBy = dict["LastUpdatedBy"] as! String                        }else {                            item.LastUpdatedBy = ""                        }                        if (dict["Priority"] as? Int != nil) {                            item.Priority = dict["Priority"] as! Int                        }else {                            item.Priority = 0                        }                        if (dict["Impact"] as? Int != nil) {                            item.Impact = dict["Impact"] as! Int                        }else {                            item.Impact = 0                        }                        if (dict["SupportType"] as? String != nil) {                            item.SupportType = dict["SupportType"] as! String                        }else {                            item.SupportType = ""                        }                        if (dict["importance"] as? Int != nil) {                            item.importance = dict["importance"] as! Int                        }else {                            item.importance = 0                        }                        arr.append(item)                    }                }            }            break        case 2:            break        default:            println("No task was found.")            break        }    }}}
解决方法 也许taskIDentifIEr属性可以帮助你: https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSURLSessionTask_class/index.html#//apple_ref/occ/instp/NSURLSessionTask/taskIdentifier 总结

以上是内存溢出为你收集整理的ios – NSURLSession didCompleteWithError:如何确定它是什么任务?全部内容,希望文章能够帮你解决ios – NSURLSession didCompleteWithError:如何确定它是什么任务?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1077465.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存