我有一段冗长的代码从Parse下载数据。这是缩短的版本:
func runQuery(query:PFQuery) {
var backgroundQueue = NSOperationQueue()
backgroundQueue.addOperationWithBlock(){
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
// ... some stuff here...
// the following line produces the parse warning.
// file is a PFFile object.
if let imageData = file.getData() {
// ...
}
// even more stuff here ...
}
}
我知道PFFile.getData()会阻止正在运行的线程,但这没关系,因为它在NSOperationQueue中运行。所以从我的想法来看,我在后台进行处理。它有效,当我调用runQuery()时,它立即返回并且UI工作。 但为什么我会得到这个警告,我怎么能摆脱它呢? 我不想将PFFile.GetData()调用更改为PFFile.getDataInBackgroundWithBlock(),因为这需要进行大量的代码更改。而且我认为不需要那样。
答案 0 :(得分:0)
NSOperationQueue()将返回主线程上运行的主操作队列。不在后台线程上。