[英]Swift Parse - Method doesn't stop executing
我有以下代码,基本上可以查询Parse类并返回结果集。 返回结果后,我将该数组传递给函数以检查是否设置了某些元素。
我在整个代码中使用了print语句进行尝试和调试,发现该查询在
if error == nil
我正在结果数组为空。 因此,当我将其传递给下面的函数时,它永远不会消失:
func emailOrUsernameIsTaken(results: [PFObject])->Int
{
/*Check if username is taken or if email is taken*/
var preferenceTaken: Int = 0
if(results[0]["email"] as! String != "" && results[0]["email"] as! String == self.userObject.email!)
{
preferenceTaken = 1
}else if(results[0]["appUsername"] as! String != "" && results[0]["appUsername"] as! String == self.userObject.username!){
preferenceTaken = 2
}
return preferenceTaken
}
这是执行查询的代码:
let query = PFQuery.orQueryWithSubqueries([usernameInputCheck, emailInputCheck])
query.findObjectsInBackgroundWithBlock {
(results: [PFObject]?, error: NSError?) -> Void in
if error == nil {
print("Before")
let checkResult = self.emailOrUsernameIsTaken(results!)
print(results)
print("After")
}
}
作为上述打印语句的输出,我进入控制台:
Before
Optional([])
After
有人可以帮我找出问题所在吗? 我很惊讶为什么这不起作用。
如果results
为空,则results[0]["email"] as! String
results[0]["email"] as! String
应该崩溃,因为您强制拆开nil
可选值。 因此,您讲的故事并不一致。
如果实际问题是空的结果-您将必须提供有关查询的详细信息以及为什么期望填充结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.