我有一个应用程序,其中一个用户(当前用户)授予其他用户访问他的数据的权限。当前用户输入他要授予访问权限的人的用户名。这是我的代码:
var generalInfo = PFObject(className:"ClientData")
generalInfo.objectId = clientIDPassed //This makes sure that I'm changing the right object.
generalInfo.ACL = PFACL.ACLWithUser(newUserEmail.text) //newUserEmail.text is the text field. Error on this line.
generalInfo.saveInBackground()
这是错误:
无法调用" ACLWithUser"使用类型'(字符串)'
的参数列表
我认为我的问题是newUserEmail.text是一个字符串,但Parse正在寻找一个PFUser。知道如何解决这个问题吗?
答案 0 :(得分:0)
您需要传递PFUser对象。
您可以通过以下方式登录并获取当前用户:
var generalInfo = PFObject(className:"ClientData")
PFUser.logInWithUsernameInBackground(<#username: String#>, password: <#String#>, block: { (user, error) -> Void in
if user != nil && error != nil {
// user has logged in
generalInfo.objectId = clientIDPassed //This makes sure that I'm changing the right object.
generalInfo.ACL = PFACL.ACLWithUser(user) // user which is passed by the login function.
/*
In my parse api (v1.7.1) PFACL.ACLWithUser is not available, instead I have to use:
PFACL(user: <#PFUser#>)
*/
generalInfo.saveInBackground()
} else {
// do your error handling
println(error!.localizedDescription)
}
})
在其他功能和类中,您可以使用PFUser.currentUser()
来获取登录用户。如果用户未登录,则返回nil
如果您想搜索用户,请执行以下操作:
var query = PFUser.query()!
query.whereKey("email", equalTo:userNameObject)
query.getFirstObjectInBackground { newUser, error in
if error == nil {
println(newUser)
var userVariable = newUser.objectId as String
}
}