我在尝试在变量上保存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 ;;
我做错了什么?
答案 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的对象的表的真实名称。