第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

SWIFT:呼叫中額外的爭論“錯(cuò)誤”

SWIFT:呼叫中額外的爭論“錯(cuò)誤”

開心每一天1111 2019-06-26 17:31:02
SWIFT:呼叫中額外的爭論“錯(cuò)誤”目前,我正在使用SWIFT2.0和Xcode Beta 2開發(fā)我的第一個(gè)iOS應(yīng)用程序,它讀取外部JSON,并在表視圖中生成包含數(shù)據(jù)的列表。然而,我遇到了一個(gè)奇怪的小錯(cuò)誤,似乎無法修復(fù):Extra argument 'error' in call下面是我的代碼片段:let task = session.dataTaskWithURL(url!, completionHandler: {data, response, error -> Void in             print("Task completed")             if(error != nil){                 print(error!.localizedDescription)             }             var err: NSError?             if let jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as? NSDictionary{                 if(err != nil){                     print("JSON Error \(err!.localizedDescription)")                 }                 if let results: NSArray = jsonResult["results"] as? NSArray{                     dispatch_async(dispatch_get_main_queue(), {                         self.tableData = results                        self.appsTableView!.reloadData()                     })                 }             }         })此錯(cuò)誤將拋出在以下一行:if let jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as? NSDictionary{誰能告訴我在這里做錯(cuò)了什么嗎?
查看完整描述

3 回答

?
梵蒂岡之花

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊

帶著SWIFT 2,簽名NSJSONSerialization已更改,以符合新的錯(cuò)誤處理系統(tǒng)。

下面是一個(gè)如何使用它的示例:

do {
    if let jsonResult = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? NSDictionary {
        print(jsonResult)
    }} catch let error as NSError {
    print(error.localizedDescription)}

帶著SWIFT 3,名字,姓名NSJSONSerialization它的方法已經(jīng)改變了,根據(jù)SWIFT API設(shè)計(jì)指南.

下面是同一個(gè)例子:

do {
    if let jsonResult = try JSONSerialization.jsonObject(with: data, options: []) as? [String:AnyObject] {
        print(jsonResult)
    }} catch let error as NSError {
    print(error.localizedDescription)}


查看完整回答
反對 回復(fù) 2019-06-26
?
蠱毒傳說

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊

在SWIFT 2中,情況發(fā)生了變化,這些方法接受了error參數(shù)轉(zhuǎn)換為拋出錯(cuò)誤的方法,而不是通過inout參數(shù)。通過查看蘋果文檔:

處理SWIFT中的錯(cuò)誤:在SWIFT中,此方法返回一個(gè)非可選的結(jié)果,并使用拋出關(guān)鍵字標(biāo)記,以指示在發(fā)生故障時(shí)拋出錯(cuò)誤。

您可以在try表達(dá)式中調(diào)用此方法,并處理do語句的CATCH子句中的任何錯(cuò)誤,如SWIFT編程語言中的錯(cuò)誤處理(SWIFT 2.1),以及在使用SWIFT與Cocoa和Object-C(SWIFT 2.1)時(shí)的錯(cuò)誤處理。

最短的解決辦法是使用try?返回nil如果發(fā)生錯(cuò)誤:

let message = try? NSJSONSerialization.JSONObjectWithData(receivedData, options:.AllowFragments)if let dict = message as? NSDictionary {
    // ... process the data}

如果您也對錯(cuò)誤感興趣,可以使用do/catch:

do {
    let message = try NSJSONSerialization.JSONObjectWithData(receivedData, options:.AllowFragments)
    if let dict = message as? NSDictionary {
        // ... process the data    }} catch let error as NSError {
    print("An error occurred: \(error)")}


查看完整回答
反對 回復(fù) 2019-06-26
?
ABOUTYOU

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

這在SWIFT 3.0中已經(jīng)改變了。

 do{
            if let responseObj = try JSONSerialization.jsonObject(with: results, options: .allowFragments) as? NSDictionary{

                if JSONSerialization.isValidJSONObject(responseObj){
                    //Do your stuff here                }
                else{
                    //Handle error                }
            }
            else{
                //Do your stuff here            }
        }
        catch let error as NSError {
                print("An error occurred: \(error)") }


查看完整回答
反對 回復(fù) 2019-06-26
  • 3 回答
  • 0 關(guān)注
  • 727 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號