将PFPointer保存在变量中

时间:2015-02-09 20:15:36

标签: pointers swift parse-platform xcode6

我在尝试在变量上保存objectId然后使用此变量进行带指针的查询时遇到了一些麻烦。

我有以下代码:

  var currentObject : PFObject?
var objId : NSString?




override func viewDidLoad() {
    super.viewDidLoad()


    if let object = currentObject? {
        subjectName.text = object["name"] as? String
        roomLabel.text = object["room"] as? String
        teacherLabel.text = object["teacher"] as? String


    }

    var query = PFQuery(className:"Calendar")
    query.whereKey("subjectId", equalTo: objId)
    query.findObjectsInBackgroundWithBlock {
        (objects: [AnyObject]!, error: NSError!) -> Void in
        if error == nil {
            // The find succeeded.
            NSLog("Successfully retrieved \(objects.count) scores.")
            // Do something with the found objects
            for object in objects {
                NSLog("%@", object.objectId)
            }
        } else {
            // Log details of the failure
            NSLog("Error: %@ %@", error, error.userInfo!)
        }
    }







    // Do any additional setup after loading the view.
}

代码本身在某些标签上显示某个对象的内容。 我想将对象id保存在objId变量中。 似乎没有错误,但是当我运行代码时,我收到以下错误:

error ="指针字段subjectId需要指针值&#34 ;;

我做错了什么?

1 个答案:

答案 0 :(得分:1)

subjectId是一个指针,但查询正在对字符串进行测试。 (这不是一个令人惊讶的错误,因为变量被误导地命名......以Id作为后缀,我们希望它是一个字符串。subjectPointer将是一个更好的后缀。)

要修复,请使用objectWithoutDataWithClassName:objectId将id设为指针。使用objId作为objectId,类名是包含具有该id的对象的表的名称(希望您的表的名称类似于" Subject")。

编辑 - 这是我最好的快速拍摄(不是我的语言)

let pointer = PFObject(withoutDataWithClassName:"Subject" objectId:objId)
query.whereKey("subjectId", equalTo:pointer)

我用"主题"作为表名,但您必须将其替换为包含id为objId的对象的表的真实名称。