1
私のappDelegate
には、ユーザーの現在の位置を返す関数があります。dispatch_asyncと予期せぬ空白の戻り値Swiftのvoid関数return
今、私はいくつかの他の場所で非同期にそれを呼び出すようにしたいと私はやった:
func handleLocation() -> CLLocation {
let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_async(dispatch_get_global_queue(priority, 0)) {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.startGPS()
while (!appDelegate.isLocationFixed()) {
sleep(1)
}
dispatch_async(dispatch_get_main_queue()) {
return appDelegate.getLocation()
}
}
}
が、今このラインreturn appDelegate.getLocation()
は私にエラーをもたらす:
unexpected non-void return value in void function
私はあまり知りませんSwift
のスレッドについては、まだこの問題を解決する手助けはできますか?
うーんので、私はただの内側に私の関数の本体を置くことができますaSyncFunction?どうすればいいのか正確に教えてください。ここにコンセプトがあるのかどうかは分かりません。ありがとう! – randomuser1
ユースケースの例を追加しました。質問がある場合はお知らせください。 – PeejWeej
ありがとうございました!私はちょうどそれを私のxcodeに貼り付けました。この行の近くでエラーが発生します: 'handleLocation {(location:CLLocation?)in'は宣言を期待しています。この場合の典型的なエラーですか? – randomuser1