我在Swift中編寫一些代碼來學習語言。這裏是我的基類:Swift元組爲可選賦值
import Foundation
class BaseCommand:NSOperation
{
var status:Int? = nil
var message:String? = nil
func buildRequest() -> NSData?
{
return nil
}
func parseResponse(data:NSData?) -> (Status:Int, Error:String)
{
return (200, "Success")
}
override func main() {
let requestBody = self.buildRequest()
println("Sending body \(requestBody)")
// do network op
var networkResultBody = "test"
var resultBody:NSData = networkResultBody.dataUsingEncoding(NSUTF8StringEncoding)!
(self.status, self.message) = self.parseResponse(resultBody)
}
}
的問題是最後一行:
(self.status, self.message) = self.parseResponse(resultBody)
編譯器說:「無法用語言表達的元組轉換(狀態:詮釋,錯誤:字符串)(智力?字符串?)「
我明白,問題是self.status和self.message是可選項,並且parseResponse不會返回可選項(我不希望它)。我如何告訴它執行必要的分配並將其轉換爲實例變量中的數據?
可以分解元組並重建它 (I,S)=(t.0,T.1) –