Swift iOS如何暂停线程

我有一个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。

我该怎么做才能解决这个问题?我应该在主线程中添加计时器暂停还是我对线程的假设完全错误,错误是完全不同的?

回答:

您需要执行访问异步回调中的标题和URL的代码。

用途:

var db = VideoDatabaseHandler() 

var video_titles = [String]()

var video_urls = [String]()

override func viewDidLoad() {

super.viewDidLoad()

//Load video list

db.loadPFObject("TutorialVids") { video_list in

video_titles = video_list["titles"] as! [String]

video_urls = video_list["urls"] as! [String]

self.tableView.reloadData()

}

}

//This function loads a PFObject from the database 

func loadPFObject(category: String, onSuccess: (PFObject -> Void)){

let query = PFQuery(className: category)

if(category == "TutorialVids"){

query.getObjectInBackgroundWithId("vpWEueKv5O"){

(tutVideos: PFObject?, error: NSError?) -> Void in

//successfully loaded video lists

if(error == nil && tutVideos != nil) {

onSuccess(tutVideos!)

}

//Error loading video lists

else{

print(error)

}

}

}

}

以上是 Swift iOS如何暂停线程 的全部内容, 来源链接: utcz.com/qa/266136.html

回到顶部