Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Parse类从Parse.com获取数据_Ios_Arrays_Swift_Parse Platform - Fatal编程技术网

Ios Parse类从Parse.com获取数据

Ios Parse类从Parse.com获取数据,ios,arrays,swift,parse-platform,Ios,Arrays,Swift,Parse Platform,我编写了一个类,其中包含从Parse.com获取、更新、添加和删除等方法 现在我的getFromParse方法有问题: class ParseModul { var returnArray = [] func getFromParse(className:String, whereKey:String, equalTo:String) -> NSArray { let query : PFQuery = PFQuery(className: className)

我编写了一个类,其中包含从Parse.com获取、更新、添加和删除等方法

现在我的
getFromParse
方法有问题:

class ParseModul {

var returnArray = []



func getFromParse(className:String, whereKey:String, equalTo:String) -> NSArray {


    let query : PFQuery = PFQuery(className: className)
    query.whereKey(whereKey, equalTo: equalTo)


    query.findObjectsInBackgroundWithBlock {
        (objects: [AnyObject]?, error: NSError?) -> Void in

        if error == nil {
            if let objects = objects as? [PFObject] {
                var temp = [PFObject]()

                for object in objects {
                    temp.append(object)
                }
                self.returnArray = temp
                print(self.returnArray) // THIS IS THE DATA FROM PARSE
            }
        } else {
            print("Error: \(error!)")
        }
    }

    print(self.returnArray.count) // THIS IS 0

    if self.returnArray.count > 0 {

        return self.returnArray

    } else {

        self.returnArray = ["nothing"]

        return self.returnArray
    }

}
}
我将其用于:

let parse:ParseModul = ParseModul()
let mydata = parse.getFromParse("UserProfile", whereKey: "username", equalTo: "Phil")

该方法始终返回“nothing”。

在获取数据之前,您正在返回数组。 在块中获取的数据可能不会在函数中返回

您可以在自己的区块中获取数据

func getFromParse(className:String, whereKey:String, equalTo:String, completion:(arr:NSArray) -> Void)
 {


    let query : PFQuery = PFQuery(className: className)
    query.whereKey(whereKey, equalTo: equalTo)


    query.findObjectsInBackgroundWithBlock {
        (objects: [AnyObject]?, error: NSError?) -> Void in

        if error == nil {
            if let objects = objects as? [PFObject] {
                var temp = [PFObject]()

                for object in objects {
                    temp.append(object)
                }
                //??self.returnArray = temp
                //??print(self.returnArray) // THIS IS THE DATA FROM PARSE
                completion(temp);
            }
        } else {
            print("Error: \(error!)")
        }
    }
}
像这样使用它

let parse:ParseModul = ParseModul()
parse.getFromParse("UserProfile", whereKey: "username", equalTo: "Phil", completion: {
   (arr:NSArray) -> Void in
        self.returnArray = arr
        print(self.returnArray) // THIS IS THE DATA FROM PARSE
        // DO SOMETHING HERE

}) 

阅读asynchronousFor
completen:(arr:NSArray)
i get<代码>无法创建具有元素标签的单个元素元组,并且对于
完成(temp)
i get
无法使用类型为“([PFObject])”的参数列表调用“完成”