2015-09-20 107 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

相关问题