我有一张叫作评估的表
ios - Swift&Parse.com将表中的值添加到没有名为下标成员的数组错误中-LMLPHP

它具有名称并发送每个任务的值
我需要做的就是检索所有这些任务并将它们存储在数组中

这是我的代码,它给我一个错误,指出PFObject没有名为send的成员:

   override func viewDidLoad() {

        super.viewDidLoad()


//test


        var taskQuery = PFQuery(className: "Assesment")

        //run query
        taskQuery.findObjectsInBackgroundWithBlock({
            (success:[AnyObject]?, error: NSError?) -> Void in

            if (success != nil) {

                for object:PFObject! in success as! [PFObject]{
             ERROR>>>>       taskMgr.addtask(object.name,send: object.name)
                }

                println(taskMgr)

            }})

        //test



        // Do any additional setup after loading the view, typically from a nib.
    }


甚至以为我试图说

taskMgr.addtask(对象)

AssesmentManager.swift类:

import UIKit

var taskMgr : AssesmentsManager = AssesmentsManager()

struct task {
    var name = "Un-Named"

    var send = false
}

class AssesmentsManager: NSObject {

    var tasks = [task]()

    func addtask(name: String, send: Bool) {

        tasks.append(task(name: name,  send: send))

    }


}


更新

 if (success != nil) {

        for object:PFObject! in success as! [PFObject]{
            if object["send"]=="true"{
                 taskMgr.addtask(object["name"], true )
            }

            else{
                taskMgr.addtask(object["name"], false )}
        }


我更新了它以删除字符串,布尔值问题,但仍然有一个错误,即没有名为下标的成员

更新#2

这是现在的样子,但仍然给我一个错误,提示对象未解决:

 var taskQuery = PFQuery(className: "Assesment")

        //run query
        taskQuery.findObjectsInBackgroundWithBlock({
            (success:[AnyObject]?, error: NSError?) -> Void in

            if (success != nil) {

                for object:PFObject! in success as! [PFObject]{
           for object in objects  {
                        taskMgr.addtask(object["name"], (object["send"] == "true"))
                    }



                }

                println(taskMgr)

            }})

最佳答案

在Swift 2.0中,findObjects返回PFObject的可选数组,而不是可选的AnyObject。尝试这个

override func viewDidLoad() {
    super.viewDidLoad()

    var taskQuery = PFQuery(className: "Assesment")

    taskQuery.findObjectsInBackgroundWithBlock {
        (success:[PFObject]?, error: NSError?) -> Void in

        if let objects = success {
            for object in objects {
                taskMgr.addtask(object["name"], (object["send"] == "true"))
                //taskMgr.addtask(object["name"], (object["send"].isEqual("true")))
            }
        }
    }
}

09-18 03:55