PFQuery 在 Swift 3 转换后没有运行
Posted
技术标签:
【中文标题】PFQuery 在 Swift 3 转换后没有运行【英文标题】:PFQuery not running after Swift 3 conversion 【发布时间】:2017-04-09 18:41:24 【问题描述】:我迁移到 Swift 3 并将我的所有 Parse 函数更新为最新的语法。现在,没有任何查询返回任何内容。没有错误,但也没有对象。奇怪的是,它看起来不像是在打电话,因为它立即不返回任何对象,并且状态栏中没有像往常一样旋转的活动指示器。查询代码如下:
let profileQuery:PFQuery = PFQuery(className: "_User")
profileQuery.whereKey("emailLowercase", equalTo: emailField.text!.lowercased() as String)
profileQuery.findObjectsInBackground(block: (objects: [PFObject]?, error: Error?) in
print(objects?.count)
)
谢谢!
【问题讨论】:
【参考方案1】:试一试:
let Query = PFQuery(className: "_User")
Query.whereKey("emailLowercase", equalTo: emailField.text!.lowercased() as String)
Query.findObjectsInBackground(block: (objects, error) -> Void in
if (error == nil)
print("Success")
print(objects?.count)
else
print("Error")
)
【讨论】:
感谢您的回答。不过同样的问题。错误是零,但对象的数量也是如此(我知道应该有 1 个)。仍然是同样的问题,看起来查询甚至没有进行调用(立即返回 nil 并且没有旋转) 嗯,那么我认为您需要深入挖掘并确保存在服务器正在运行的实例等。检查并确保解析库添加正确。 不完全相关,但可能是时候开始考虑 Parse 的其他平台了。在过去的几个月里,android 和 ios SDK 几乎没有任何进展。【参考方案2】:你的查询代码应该是这样的;
let query = PFUser.query()
【讨论】:
【参考方案3】:正如 Baris 所建议的那样,你唯一的问题是你查询的类是错误的。您不能使用 ("_User") 进行查询
let profileQuery = PFUser.query()
profileQuery.whereKey("emailLowercase", equalTo: emailField.text!.lowercased() as String)
profileQuery.findObjectsInBackground(block: (objects: [PFObject]?, error: Error?) in
if error == nil
print(objects?.count)
)
【讨论】:
以上是关于PFQuery 在 Swift 3 转换后没有运行的主要内容,如果未能解决你的问题,请参考以下文章
Spritekit 应用程序在设备上运行时崩溃,在 swift 3 转换后在模拟器上工作
Swift - 'PFObject不能转换为NSString'