2014-10-01 1 views
0

Parse 문서는 Swift를 사용하는 쿼리의 예를 제공하며 objectId 또는 count와 같은 기본 제공 필드에 액세스하는 예를 보여줍니다. 그러나 개체의 열 중 하나에 액세스하는 것은 어떨까요?Swift의 Parse 쿼리 결과에서 개체의 필드에 어떻게 액세스합니까?

var query = PFQuery(className: "MyObject") 
    query.findObjectsInBackgroundWithBlock { 
      (objects: [AnyObject]!, error: NSError!) -> Void in 
      if !(error != nil) { 
       for object in objects { 
        println(object["name"]) 
      } 
      else { 
       println("%@", error) 
      } 
    } 

"AnyObject"가 string으로 변환 될 수 없음 오류를 가져옵니다. 또한

object.objectForKey("name") 

오류 제공합니다

지금은 또한 "PFObject로"시도

또는 이와 유사한 "제공된 인수를 받아 'objectForKey'에 대한 과부하를 찾을 수 없습니다"를,뿐만 아니라 오류 발생 Parse의 설명서에는 이와 비슷한 내용이 표시되지 않습니다. " '[AnyObject]'유형은 암시 적으로 'PFObject'로 다운 캐스트 할 수 없습니다. 다운 캐스트를 강제하기 위해 'as'를 사용 했습니까?" 그런 다음

내가 수정 프로그램을 적용, 새로운 오류가 "형 'PFObject는'프로토콜 'SequenceType'

let pf = object as PFObject 

와 루프 내부에 downcasting도 시도

을 준수하지 않는 것입니다하지만하지 않습니다 내가 얻을

let name = pf["name"] 

을하기 때문에 때 도움이 보인다

" 'AnyObject은'문자열 '로 변환되지 않습니다"

도움 주셔서 감사합니다. 나는 아직 아무것도 발견하지 못했기 때문에 내가 명백한 것을 놓치고 있다고 확신한다.

+1

당신이 String'로 이름 = PF [ "이름"]하자 '시도? – Paulw11

+0

그랬지, 고마워. 그래서 너는 항상 이런 것들을 던져야 만 해? 답변을 아래에 추가하여 선택하겠습니다. – shim

답변

7
당신은 명시 적으로 검색하는 속성을 캐스팅 할 필요가

-

let name = pf["name"] as String 
1

이 나를 위해 일한 :

var query = PFQuery(className: "People") 
    query.findObjectsInBackgroundWithBlock { 
     (objects: [AnyObject]!, error: NSError!) -> Void in 

     if error == nil { 

      // query successful - display number of rows found 
      println("Successfully retrieved \(objects.count) people") 

      // print name & hair color of each person found 
      for object in objects { 

       let name = object["name"] as NSString 
       let color = object["hairColor"] as NSString 

       println("\(name) has \(color) hair") 

      } 
     } else { 

      // Log details of the failure 
      NSLog("Error: %@ %@", error, error.userInfo!) 
     } 
    } 
관련 문제