2
我有一個VideoViewController類,它調用我的數據庫類並執行loadPFObject並返回一個PFObject。Swift iOS如何暫停線程
var db = VideoDatabaseHandler()
var video_titles = [String]()
var video_urls = [String]()
override func viewDidLoad() {
super.viewDidLoad()
//Load video list
let video_list = db.loadPFObject("TutorialVids")
video_titles = video_list["titles"] as! [String]
video_urls = video_list["urls"] as! [String]
self.tableView.reloadData()
}
在我這裏數據庫類
然後是返回PFObject
//This function loads a PFObject from the database
func loadPFObject(category: String) -> PFObject {
let query = PFQuery(className: category)
var db_obj = PFObject(className: category)
if(category == "TutorialVids"){
query.getObjectInBackgroundWithId("vpWEueKv5O"){
(tutVideos: PFObject?, error: NSError?) -> Void in
//successfully loaded video lists
if(error == nil && tutVideos != nil) {
db_obj = tutVideos!
}
//Error loading video lists
else{
print(error)
}
}
}
print(db_obj)
return db_obj
}
我不斷收到在我的代碼第一部分的錯誤我張貼上線的功能:
video_titles = video_list["titles"] as! [String]
它說意外地發現零,同時展開一個可選值。
我相信loadPFObject,因爲它在不同的類上運行在不同的線程上,並且在打開該字符串值的時候沒有完成加載PFObject。
我該怎麼做才能解決這個問題?我應該在主線程中添加計時器暫停還是我對線程的假設完全錯誤,錯誤是完全不同的?
參見:http://stackoverflow.com/questions/24726723/stop-pause-swift-app-for-period-of-time和http://stackoverflow.com/questions/27517632/how-to-create-a-delay-in-swift – WBT
睡眠/暫停是處理我的問題的最佳方法還是有一個更好的方法來知道什麼時候該線程完成? –
回調比睡眠好,但鏈接主要基於您如何命名您的問題。 – WBT