Swift致命错误:从Parse和填充数组中检索图像时无法索引空缓冲区
你好, 我已经尝试了好几天才能得到一些工作,我的第一个应用程序试图从Parse数据库中提取图像。我已成功连接Parse,可以看到出现的数据,包括图片上传。我上传的一张图片是PNG类型的90 Kb图片(这是一个非常小的文件)。
现在我想向用户展示这些图像,让他对它们采取行动,然后呈现下一个。为此,我想在加载页面时将图像放入数组中。当我尝试访问此数组(在元素为零)时,我收到一个错误致命错误:无法索引我读为“空数组”的空缓冲区。我尝试了各种各样的事情,包括开始一个新的Parse项目,创建新用户和上传新图像,以防出现问题。
从阅读开始,我认为问题可能是因为我在后台使用块包装器查找对象来填充此数组。所以我试图在进程或填充它的线程完成之前访问该数组。我试图将这个执行代码放入dispatch_sync和类似的,但这也没有用。
任何人都可以提出任何可能解决此问题的建议吗? 真的很感激,我只是无法解决它作为我目前的学习/知识点..
感谢 帕特里克
import UIKit
class SwipetimeViewController: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
@IBOutlet var loginlabel: UILabel!
@IBOutlet var showImage: UIImageView!
var foodTypeDescriptions = [NSString]()
var foodTypeImages = [NSData]()
func getImages () {
var query = PFQuery(className:"FoodType")
var foodType = PFObject(className: "FoodType")
query.findObjectsInBackgroundWithBlock({
(foodTypes, error: NSError!) -> Void in
for foodType in foodTypes
{
if (foodType["Title"] != nil && foodType["imageFile"] != nil)
{
self.foodTypeDescriptions.append(foodType["Title"] as NSString)
self.foodTypeImages.append(foodType["imageFile"] as NSData)
}
}
})
}
override func viewDidLoad() {
super.viewDidLoad()
Parse.setApplicationId(“XXXXXXXXXXXXXXXXXXXXXXX”, clientKey: “YYYYYYYYYYYYYYYYYYYYYYYYY)
var userImage: UIImageView = UIImageView(frame: CGRectMake(0, 0, self.view.frame.width, self.view.frame.height))
userImage.image = UIImage(data: self.foodTypeImages[0])
userImage.contentMode = UIViewContentMode.ScaleAspectFit
self.view.addSubview(userImage)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}