我试图访问当前用户的数据字段的余额。
以下是我在调试器中查询currentUser时只能看到的内容:
(lldb) po currentUser
<PFUser: 0x17642d80, objectId: FUsro30ZFu, localId: (null)> {
displayName = Turkey;
email = "frederick.c.lee@gmail.com";
firstName = Frederick;
lastName = Lee;
username = "UncleRic ";
}
这是我想要的领域(和其他一样):
这些是不成功的尝试:
(lldb) po currentUser["location"]
error: indexing expression is invalid because subscript type 'const char *' is not an Objective-C pointer
error: 1 errors parsing expression
(lldb) po currentUser.location
error: property 'location' not found on object of type 'PFUser *'
error: 1 errors parsing expression
(lldb) po currentUser.valueForKey("location")
error: property 'valueForKey' not found on object of type 'PFUser *'
error: 1 errors parsing expression
访问对象&#39; PFUser&#39;
的剩余字段的正确方法是什么
另外,如何更新/分配PFUser的字段值?
显然我需要将一个String重新转换为AnyObject对象。但是这个地点&#39;字段已被定义为String字段。
答案 0 :(得分:1)
这里有几个问题。
1)我试图在调试器中使用Swift而不是Objective-C。
所以我的语法都搞砸了。
2)我在线(通过网络)更改了我的parse.com数据后,我没有重启(冷启动)我的app @ device。所以我看起来是一个潜在的(非刷新数据)。
以下是查看PFUser属性值的正确格式:
(lldb) po [currentUser objectForKey:@"firstName"]
Frederick
(lldb) po [currentUser objectForKey:@"location"]
Ann Arbor
这是用于更新PFUser对象的正确Swift语法。 注意:确保在后端线程上完成实际的SAVE()。
代码用户基本上是概念验证,我可以实际更新文件。
func updateParseUser(newUser:User, sender:UIViewController) {
let currentUser = PFUser.currentUser()
if ((currentUser) == nil) {
return
}
if let revisedlocation = newUser.location {
currentUser?.setValue(revisedlocation, forKey: "location")
}
if let phone = newUser.phoneNumber {
currentUser?.setValue(phone, forKey: "phone")
}
currentUser!.save()
}
感谢您的反馈