Swift 1.2:void 函数中出现意外的非 void 返回值
Posted
技术标签:
【中文标题】Swift 1.2:void 函数中出现意外的非 void 返回值【英文标题】:Swift 1.2: Unexpected non-void return value in void function 【发布时间】:2016-01-25 20:57:41 【问题描述】:我编写了一个函数,它应该从页面返回某个值。我已经用 JSON 完成了这项工作,这样我就可以从我的网站中获得一定的价值。这是函数:
func getTimerData()
var currentUsername = PFUser.currentUser()!.username
let url = NSURL(string: "http://dinges.informatica-dinges.nl/timerDataTransmitter.php?user=\(currentUsername!)&unique=85017438957")
let request = NSMutableURLRequest(URL: url!)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request)
data, response, error in
var parseError: NSError?
if let json = NSJSONSerialization.JSONObjectWithData(data!, options: nil, error: &parseError) as? [String: String]
let rideTime = json["timerValue"]
return rideTime
但是,它给了我错误:Unexpected non-void return value in void function
。我已经尝试了很多,但我似乎无法找到解决此问题的方法。你知道我该如何解决吗?
【问题讨论】:
func getTimerData() -> NSTimeInterval
,或任何rideTime
的类型
你不能返回任何东西,因为dataTaskWithRequest
是异步工作的。使用完成块或通知。
@vadian 你能告诉我怎么做吗?我还没有真正使用过完成块或通知。
在Related
列中有一些建议,例如***.com/questions/30279359/…
【参考方案1】:
根据需要使用返回数据类型声明您的函数 如:
fun getTimerData() -> String
var currentUsername = PFUser.currentUser()!.username
let url = NSURL(string: “http://dinges.informatica-dinges.nl/timerDataTransmitter.php?user=\(currentUsername!)&unique=85017438957”)
let request = NSMutableURLRequest(URL: url!)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request)
data, response, error in
var parseError: NSError?
if let json = NSJSONSerialization.JSONObjectWithData(data!, options: nil, error: &parseError) as? [String: String]
let rideTime = json["timerValue"]
return rideTime
【讨论】:
以上是关于Swift 1.2:void 函数中出现意外的非 void 返回值的主要内容,如果未能解决你的问题,请参考以下文章
类理解:void函数中出现意外的非void返回值(swift 3)