我收到错误消息“无法下标“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
}
最佳答案
根据您的评论,ObjectHolder 定义为:
(ObjectHolder : PFObject!, error: NSError!) -> Void in
这意味着 ObjectHolder 不是一个数组,而是一个单独的 PFObject。假设您正确键入了键(“问题”)并且您正在查询正确的对象,您可以使用以下方法获得您要查找的内容:
self.Question = ObjectHolder.valueForKey("Question") as! String
您最初编写它的方式只有在您从 Parse 中提取字典时才有效。如果你正在拉一个数组,你可以给它下标,但不能用键;您需要通过索引找到它(即 ObjectHolder[0].valueForKey("Question") as!String
)
^旁注:Parse 不允许您存储用任何语言编写的字典,只能存储数组。
关于swift - 不能下标 pfobject 类型的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32684790/