簡體   English   中英

無法在Swift中強制將類型'Void'轉換為'String'

[英]Cannot convert type 'Void' to 'String' in coercion in Swift

所以我正在使用一些庫和其中一種方法,據說具有返回值

 let data2 = dataCollector.collectCardFraudData({ ( str:String) in }) 

但是問題是返回值是空類型,但是我可以看到其中的值,我檢查了很多教程,他們建議更改返回類型,但是既然這是一個庫,我就不會認為我可以做到這一點。還有其他方法可以將該值轉換為字符串嗎?

我也是一個新的Swift,所以請輸入任何信息都會對您有所幫助

謝謝

該函數沒有返回值。 Swift的等效項是

func collectCardFraudData(completion: @escaping (String) -> Void)

因此,您必須使用以下語法來調用它。 deviceData作為參數傳遞, completion必須調用completion

dataCollector.collectCardFraudData { deviceData in 

  // do something with deviceData
  completion()
}

我不太了解 只是猜測。 您的函數正在通過完成處理程序返回該值。 你應該這樣使用

let data2 = dataCollector.collectCardFraudData({ str in
    print(str) // str available here
})

由於collectCardFraudData有一個閉包,它在該塊內為您提供“ str”值,直接將其分配給“ data2”會導致您出錯。

嘗試下面的代碼,請讓我知道它是否有效

var data2 = String()
dataCollector.collectCardFraudData({ str in 
    data2 = "\(str)"
})

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM