Parse platform 将解析数据库保存到一个名为recipes的数组中,我现在尝试访问该数组中的内容

Parse platform 将解析数据库保存到一个名为recipes的数组中,我现在尝试访问该数组中的内容,parse-platform,swift2,ios9,xcode7,swift2.1,Parse Platform,Swift2,Ios9,Xcode7,Swift2.1,我有一个解析中的数据库,我已经将其拉入swift数组。自定义解析对象称为UserRecipe。该数组称为recipes,位于viewDidLoad方法中。我正在尝试将调用的imageview设置为始终访问数组中第一个元素的图像。我在updateImage函数中执行此操作,但不确定语法是否正确。此外,数组似乎仅使用viewDidLoad方法存储,myupdateImage函数无法访问该数组。我想知道如何使它全球化,以便所有功能都可以访问它。提前感谢您的帮助 数据库如下所示: 导入UIKit 导入

我有一个解析中的数据库,我已经将其拉入swift数组。自定义解析对象称为
UserRecipe
。该数组称为
recipes
,位于
viewDidLoad
方法中。我正在尝试将调用的imageview设置为始终访问数组中第一个元素的图像。我在
updateImage
函数中执行此操作,但不确定语法是否正确。此外,数组似乎仅使用
viewDidLoad
方法存储,my
updateImage
函数无法访问该数组。我想知道如何使它全球化,以便所有功能都可以访问它。提前感谢您的帮助

数据库如下所示:

导入UIKit
导入解析
//导入ParseFacebookUtilsV4
导入FBSDKCoreKit
导入FBSDKLoginKit
类ViewController:UIViewController{
让配方=[PFObject]?.self
@iBMI图像:UIImageView!
重写func viewDidLoad(){
super.viewDidLoad()
//从解析自定义对象UserRecipe加载所有数据,并将其存储在变量Recipe中
var query=PFQuery(类名:“UserRecipe”)
query.findObjectsInBackgroundWithBlock{
(配方:[PFObject]?,错误:N错误?->中的无效
如果错误==nil{
如果让配方=配方{
配方中的配方{
打印(配方[“recipeName”])
}
}
}否则{
打印(“错误:\(错误!)\(错误!.userInfo)”)
}
}
让手势=UIPangestureRecognitor(目标:self,动作:选择器(“wasDrawed:”))
recipeImage.AddgestureReceignizer(手势)
//let tapping=UITappgestureRecognitor(目标:自我,操作:选择器(“wasttapped:”)
//recipeImage.AddGestureRecognitor(轻敲)
recipeImage.userInteractionEnabled=true
//updateImage()
//getUserInfo()
}
func被拖动(手势:UIPangestureRecognitor){
//拖动动画
让翻译=手势.translationView(self.view)
让imageDrag=signature.view!
imageDrag.center=CGPoint(x:self.view.bounds.width/2+translation.x,y:self.view.bounds.height/2+translation.y-153)
让xFromCenter=imageDrag.center.x-self.view.bounds.width/2+translation.x
让刻度=最小值(100/abs(xFromCenter),1)
var rotation=CGAffineTransformMakeRotation(xFromCenter/200)
var stretch=CGAffineTransformScale(旋转、缩放、缩放)
imageDrag.transform=拉伸
//确定当前用户是否已接受或拒绝某些配方
如果手势.state==UIGestureRecognitizerState.Ended{
var acceptedorreturned=“”
如果imageDrag.center.x<100{
acceptedOrRejected=“已拒绝”
打印(“未选择”)
//打印(“未选择”+对象[“recipeName”])
}如果imageDrag.center.x>self.view.bounds.width-100,则为else{
acceptedOrRejected=“已接受”
打印(“选定”)
}
/*如果接受或拒绝!“”{
PFUser.currentUser()?.addUniqueObjectsFromArray([displayedUserId],forKey:AcceptedOrjected)
PFUser.currentUser()?.saveInBackgroundWithBlock({
(成功:Bool,错误:NSError?->Void in
如果成功了{
}否则{
打印(错误)
}
})
}*/
//释放图像后重置图像位置
旋转=CGAffineTransformMakeRotation(0)
拉伸=CGAffineTransformScale(旋转,1,1)
imageDrag.transform=拉伸
imageDrag.center=CGPoint(x:self.view.bounds.width/2,y:self.view.bounds.height/2-153)
updateImage()
}
}
func updateImage(){
recipeImage.image=配方[“图像”][0]
}
重写函数didReceiveMemoryWarning(){
超级。我收到了记忆警告()
//处置所有可以重新创建的资源。
}
}

我不懂解析,但如果我是你,我会尝试这些东西

  • 在中设置断点
  • 按如下所示更换代码
  • import UIKit
    import Parse
    //import ParseFacebookUtilsV4
    import FBSDKCoreKit
    import FBSDKLoginKit
    
    class ViewController: UIViewController {
    
        let recipes = [PFObject]?.self
    
        @IBOutlet var recipeImage: UIImageView!
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            //load in all data from Parse custom Object UserRecipe and store it in variable recipes
    
            var query = PFQuery(className:"UserRecipe")
            query.findObjectsInBackgroundWithBlock {
                (recipes: [PFObject]?, error: NSError?) -> Void in
                if error == nil {
                    if let recipes = recipes {
                        for recipe in recipes {
                            print(recipe["recipeName"])
                        }
                    }
                } else {
                    print("Error: \(error!) \(error!.userInfo)")
                }
            }
    
            let gesture = UIPanGestureRecognizer(target: self, action: Selector("wasDragged:"))
            recipeImage.addGestureRecognizer(gesture)
    
            //let tapping = UITapGestureRecognizer(target: self, action: Selector("wasTapped:"))
            //recipeImage.addGestureRecognizer(tapping)
    
            recipeImage.userInteractionEnabled = true
    
    
            //updateImage()
            //getUserInfo()
    
    
    
        }
    
    
        func wasDragged(gesture: UIPanGestureRecognizer) {
    
    
            //Dragging Animation
    
            let translation = gesture.translationInView(self.view)
            let imageDrag = gesture.view!
    
            imageDrag.center = CGPoint(x: self.view.bounds.width / 2 + translation.x, y: self.view.bounds.height / 2 + translation.y - 153)
    
            let xFromCenter = imageDrag.center.x - self.view.bounds.width / 2 + translation.x
    
            let scale = min(100 / abs(xFromCenter), 1)
    
    
            var rotation = CGAffineTransformMakeRotation(xFromCenter / 200)
    
            var stretch = CGAffineTransformScale(rotation, scale, scale)
    
            imageDrag.transform = stretch
    
    
            //determines whether current user has accepted or rejected certain recipes
    
            if gesture.state == UIGestureRecognizerState.Ended {
    
                var acceptedOrRejected = ""
    
                if imageDrag.center.x < 100 {
    
                    acceptedOrRejected = "rejected"
    
                    print("not chosen")
    
                    //print("not chosen" + object["recipeName"])
    
                } else if imageDrag.center.x > self.view.bounds.width - 100 {
    
                    acceptedOrRejected = "accepted"
                    print("Chosen")
                }
    
                /*if acceptedOrRejected != "" {
    
                    PFUser.currentUser()?.addUniqueObjectsFromArray([displayedUserId], forKey: acceptedOrRejected)
    
                    PFUser.currentUser()?.saveInBackgroundWithBlock({
    
                        (succeeded: Bool, error: NSError?) -> Void in
    
                        if succeeded {
    
                        } else {
    
                            print(error)
    
                        }
    
                    })
    
    
    
                }*/
    
                //Resets image position after it has been let go of
    
    
                rotation = CGAffineTransformMakeRotation(0)
    
    
                stretch = CGAffineTransformScale(rotation, 1, 1)
    
                imageDrag.transform = stretch
    
                imageDrag.center = CGPoint(x: self.view.bounds.width / 2, y: self.view.bounds.height / 2 - 153)
    
                updateImage()
    
    
            }
        }
    
        func updateImage() {
            recipeImage.image = recipes["image"][0]
    
        }
    
    
    
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    }
    
    
    
        func updateImage() {
        // set breakpoint here and check whether recipes contains any data.
            recipeImage.image = recipes["image"][0]
        }
    
    
    
    
        //replace
        recipes["image"][0] 
        //to
        recipes[0]["image"]