我正在Swift中爲我的高中運動隊開發一個應用程序。當您單擊主視圖控制器上的按鈕時,它會獲取想要查看的團隊的變量,並根據所選團隊獲取某個視頻的鏈接。當我第一次選擇團隊時會出現問題;它什麼也沒有顯示,但是當我再次點擊回家並且然後團隊時,它顯示。iOS Swift:函數沒有返回正確的值
這是我在HomeViewController按鈕代碼:
import UIKit
class homeViewController: UIViewController {
@IBAction func varsityBasketballBtn(sender: AnyObject) {
appDelegate.team = "VARSITY BASKETBALL"
}
@IBAction func varsityHockeyBtn(sender: AnyObject) {
appDelegate.team = "VARSITY HOCKEY"
}
@IBAction func jvBasketballBtn(sender: AnyObject) {
appDelegate.team = "JV BASKETBALL"
}
@IBAction func jvHockeyBtn(sender: AnyObject) {
appDelegate.team = "JV HOCKEY"
}
你點擊一個按鈕後,它塞格斯到tabBarController,並設置AppDelegate中的團隊變量選擇的球隊。在AppDelegate中,我創建了一個函數,它根據團隊變量從parse.com中檢索視頻的鏈接。然後,我把這個函數,它應該返回embedLink,在我的網頁視圖的HTML代碼。當我第一次加載應用程序並選擇一個團隊時,網絡視圖是空白的,但回家後重新選擇團隊,它會顯示正確的視頻。我添加打印語句到我的功能,這似乎告訴我,它返回的embedLink變量從解析這似乎是我的問題,運行我的查詢之前:
var embedLink:String = ""
func getLink() -> String{
let query = PFQuery(className:"LiveLink")
print("This is right after query")
query.findObjectsInBackgroundWithBlock{
(liveLink:[PFObject]?,error: NSError?) -> Void in
print("This is before livelink")
if error == nil && liveLink != nil {
for link in liveLink!{
if link["team"] as! String == self.team{
self.embedLink = link["link"] as! String
print("This is link in query: \(self.embedLink)")
}
}
} else {
print(error)
}
}
print("This is link in func: \(embedLink)")
return embedLink
}
請告知,以你怎麼想這可能是正確完成。任何幫助表示讚賞。
非常感謝你!這固定了一切! –