2016-01-25 76 views
0

我写了一个函数,它应该从页面返回一定的值。我使用JSON完成了这项工作,以便从我的网站上获得一定的价值。这是功能:Swift 1.2:void函数中意外的非void返回值

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。我尝试了很多,但似乎无法找到解决此问题的方法。你知道我该如何修复它吗?

+0

'FUNC getTimerData() - > NSTimeInterval',或什么是你不能返回任何rideTime' –

+0

的'类型因为'dataTaskWithRequest'异步工作。使用完成块或通知。 – vadian

+0

@vadian你能告诉我如何做到这一点?我还没有真正使用完成块或通知。 –

回答

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 
    } 
    } 
}