2015-09-20 73 views
1

我收到的錯誤「無法下標類型的值‘PFObject’。對於下面的代碼:無法下標類型pfobject的價值

self.Question = objectHolder["Question"] as! String! 

人知道如何解決它或任何建議 。我使用的Xcode 7和查詢解析

全功能

func CallData(){ 
    var query : PFQuery = PFQuery(className: "QuestionsandAnswers") 
    query.getObjectInBackgroundWithId("Parse Object id is here") { 
     (ObjectHolder : PFObject!, error: NSError!) -> Void in 
     if (error == nil) { 
      self.Question = ObjectHolder.valueForKey("Question") as! String 
      self.Answers = ObjectHolder.valueForKey("Answers") as! Array 
      self.Answer = ObjectHolder.valueForKey("Answer") as! String 

      if(self.Answers.count > 0){ 
       self.QuestionLabel.text = self.Question 




      } 
+0

從來沒有得到它 – Ace

+0

沒有想到的修復我腦子裏沒有工作,它放置更多的錯誤任何人都知道我可以解決這個問題? – Ace

+0

'objectHolder'是如何定義的? – drewag

回答

0

使用 「objectForKey:」 方法來代替:

self.Question = objectHolder.objectForKey("Question") as! String 
0

根據您的評論說的ObjectHolder被定義爲:

(ObjectHolder : PFObject!, error: NSError!) -> Void in 

這意味着的ObjectHolder不是一個數組,但已經是一個單一PFObject。假設你正確輸入了鍵(「問題」)和你查詢合適的對象,你可以得到你要尋找的使用:

self.Question = ObjectHolder.valueForKey("Question") as! String 

您最初寫它的方式只會如果你是從Parse中提取一本字典的話。如果你正在拉數組,你可以使用下標但不使用鍵;您需要通過索引找到它(即ObjectHolder[0].valueForKey("Question") as! String

^注意:Parse不允許您存儲以任何語言(僅限數組)編寫的字典。

+0

現在我得到一個錯誤「無法調用'getObjectInBackgroundWithId'的類型參數列表」for下面的代碼行:query.getObjectInBackgroundWithId(「parse id被放置在這裏「) – Ace

+0

@Blanco粘貼整個查詢函數,所以我們可以看看它從A到B. –

+0

我編輯了我的原始帖子的完整功能 – Ace

相關問題