【发布时间】:2014-09-10 11:47:34
【问题描述】:
我正在从 Parse 中检索一组图像,使用以下代码和 Swift。
var imageResources : Array<UIImage> = []
override func viewDidLoad(){
super.viewDidLoad()
self.loadImages()
}
func loadImages(){
var query = PFQuery(className: "Images")
query.orderByDescending("objectId")
query.findObjectsInBackgroundWithBlock ({(objects:[AnyObject]!, error: NSError!) in
if(error == nil){
for object : PFObject! in objects as [PFObject] {
var thumbNail = PFFile()
thumbNail = object["image"] as PFFile
println("thumNail \(thumbNail)")
thumbNail.getDataInBackgroundWithBlock({
(imageData: NSData!, error: NSError!) in
if (error == nil) {
let image : UIImage = UIImage(data:imageData)
//image object implementation
self.imageResources.append(image)
}
})//getDataInBackgroundWithBlock - end
}//for - end
}
else{
println("Error in retrieving \(error)")
}
})//findObjectsInBackgroundWithblock - end
}
我的 Parse 类详细信息
类名 - 图片
当我运行这个函数时,它在控制台中没有消息就崩溃了。
注意:我能够在回调中获取 PFFile 对象的集合。
我换了 "thumbNail.getDataInBackgroundWithBlock({...." 块与同步函数调用 thumbNail.getData() 一样 "var imageData= thumbNail.getData() var image = UIImage(data:imageData)"
然后错误说
警告:正在主线程上执行长时间运行的操作。 中断 warnBlockingOperationOnMainThread() 进行调试。
所以,我恢复为 thumbNail.getDataInBackGroundWithBloack({... 但是现在,控制台中没有错误显示,就像之前发生的那样。我的方法有什么问题吗,请告诉我。 任何帮助将不胜感激...!
【问题讨论】:
-
当我尝试将 PFFile 转换为 UIImage 时,即 (thumbNail.getDataInBackground({.... ) 这就是问题所在,对此的任何帮助都会非常棒。
-
如果您发布整个堆栈跟踪信息会更容易提供帮助。
-
@TomErikStøwer :在我的控制台中没有堆栈跟踪。它只是突然退出执行。
-
你要获取多少 pfobjects?
-
我正在获取 20 个 PFObjects 作为具有 20 行的 Parse 类“图像”。
标签: ios swift parse-platform