2017-04-24 1 views
0

Swift에서 반환 된 객체를 기반으로 동작해야하는 PFQuery 함수가 있습니다. 나는 에러 == nil, 객체라면! = nil 그리고 에러 == nil이면 & & objects! = nil이지만, "otherUser"와 "responded"키가 항상 같았던 것처럼 행동한다. 클래스 "Requests"에 "otherUser"가 없지만 "responded"는 "False"와 같습니다. (너무 길기 때문에 실제 전체 길이 쿼리를 줄였습니다.)Swift가 잘못 읽음 PFQuery 반환

let query = PFQuery(className: "Requests") 
     query.whereKey("otherUser", equalTo: PFUser.currentUser()!.objectForKey("username") as! String) 
     query.whereKey("responded", equalTo: "True") 
     query.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in 
      if error == nil && objects != nil{ 
       print(objects) 
       print("disabling confirm button") 
       self.stopTime = self.defaults.integerForKey("intKey") 
      }else{ 
       print("Did not respond yet.") 
       self.counter = 1200 
       self.storyboard 
      } 
     }) 
} 
+0

부울이 아닌 문자열에'responded'라고 비교할 예정입니까? 또한이 쿼리는'error! = nil'을 제외하고는'object == nil'을 반환하지 않아야합니다. 이 쿼리와 일치하는 개체가 발견되지 않으면 nil이 아닌 빈 배열을 반환해야합니다. 그게 무슨 일이야, 아마? –

답변

0

otherUser가 발견 또는 responded이 False하지 않더라도, query은 여전히 ​​오류를 반환하지 않으며, objects는 하늘의 배열 될 것입니다. 빈 배열은 힙이 아니며 힙에 있습니다.

모든 것이 올바르게 수행되는 한 쿼리가 제약 조건과 일치하지 않는 경우에도 오류 대신 빈 배열이 반환됩니다.

쿼리가 결과를 반환했는지 확인하려면 if (objects.count)을 사용하여 반환 된 결과가 비어 있는지 확인하십시오.

+0

고맙습니다. 작동합니다. – Dups