Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.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 指针值返回nil的解析查询_Ios_Swift_Parse Platform_Swift2 - Fatal编程技术网

Ios 指针值返回nil的解析查询

Ios 指针值返回nil的解析查询,ios,swift,parse-platform,swift2,Ios,Swift,Parse Platform,Swift2,我有一个表UserProfile,它有一个指向相应用户表的指针列(user)。我正试图构造一个简单的查询来获取用户对象的UserProfile。但是,查询返回nil(object=我的应用程序中的用户对象): 知道为什么这个查询不起作用吗?谢谢 使用Mazel的解决方案更新代码: query.findObjectsInBackgroundWithBlock { (objects: [PFObject]?, error: NSError?) -> Void in

我有一个表UserProfile,它有一个指向相应用户表的指针列(user)。我正试图构造一个简单的查询来获取用户对象的UserProfile。但是,查询返回nil(object=我的应用程序中的用户对象):

知道为什么这个查询不起作用吗?谢谢

使用Mazel的解决方案更新代码:

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

        if error != nil {

            print(error)

        } else if let objects = objects as? [PFObject]! {

            for object in objects {

      let profileQuery = PFQuery(className: "UserProfile")
                    profileQuery.whereKey("user", equalTo: PFObject(outDataWithClassName: "_User", objectId: "\(object.objectId!)"))
                    //profileQuery.includeKey("user")
                    profileQuery.limit = 1
                    profileQuery.findObjectsInBackgroundWithBlock{
                        (results: [PFObject]?, error: NSError?) -> Void in

                        if error != nil{
                            print(error)
                        } else if let results = results as? [PFObject]! {

                            for result in results {
                                self.profile = result
                            }
                        }
                    }

可能指针的存储方式不同,请尝试使用此选项

profileQuery.whereKey("user", equalTo: PFObject(outDataWithClassName: "_User", objectId: "\(object.objectId!)"))

你也可以删除这行profileQuery。includeKey(“user”)

问题出在这行profileQuery中。whereKey(“user”,equalTo:object)但是你没有分享object这么难说的东西…谢谢你的回复!对象是我之前在应用程序中运行的另一个查询的结果。我没有包括它,所以它不会让人困惑。对象是用户表中的PFUser。所以我希望运行另一个查询来获取该用户的UserProfile(该用户在我的查询中称为object)。谢谢!不幸的是,我仍然得到了
致命错误:当它到达查询结果时,在展开可选值时意外地发现了nil。我用最新的代码更新了我的问题。Xcode让我将
withoutDataWithClassName
更改为
outDataWithClassName
并且您的对象是否可选,请尝试将其更改为object!。目标!,我检查了xcode,它也让我把它改为outDataWithClassName…它看起来是可选的。更新了我的问题。我添加了另一个抓取对象的查询,这样您就可以更好地了解正在发生的事情(我知道没有太多信息很难支持)。希望这有帮助我不知道在第一次查询中将下载多少个对象,但这是一个设计非常糟糕的数据库方案,因为对于您下载的每个对象,您都试图再次(同时)下载某些内容。。。。考虑一下您的数据库方案,因为这太糟糕了,网络请求总是非常昂贵!仅供参考,指针适用于1:many关系,解析关系适用于many:many…我同意这并不理想。我之所以将User表拆分为User和UserProfile,是因为User的默认安全设置。用户现在拥有私有数据,用户配置文件拥有公共信息。用户对用户配置文件是1:1关系。有什么更好的方法?
profileQuery.whereKey("user", equalTo: PFObject(outDataWithClassName: "_User", objectId: "\(object.objectId!)"))