我正在使用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)
编译器提示“无法将元组转换(Status:Int,Error:String)为(Int?,String?)”
我理解问题在于self.status和self.message是可选的,而parseResponse不返回可选项(我也不想这样做)。如何告诉它执行必要的赋值和转换,将数据放入实例变量中?
(i,s)=(t.0,t.1)
- brian.clear