我正在使用 parse 为后端开发一个应用程序。在应用程序中,我有一个注册模块。用户输入他的电子邮件和密码,我发送数据进行解析并将用户名临时设置为 temp。在下一个屏幕上,提示用户选择用户名,我将在后端相应地更新用户名。现在问题来了:字段用户名的值没有得到更新。这些是我上网后尝试的几种方法。
//sharedclass is a singleton class, i save object id of the registered user to its attribute objectid.
NSString * objectID = sharedClass.sharedInstance->objectid;
NSLog(@"%@", objectID);
PFObject *pointer = [PFObject objectWithoutDataWithClassName"User" objectIdbjectID];
sharedClass.sharedInstance->user.username = self.userName.text;
[pointer setObject:self.userName.text forKey"username"];
[pointer saveInBackground];
这个说没有找到对象。即使我得到了 objectID 还好。 然后这里有这个:
PFQuery *query = [PFQuery queryWithClassName"Users"];
[query whereKey"objectId" equalTobjectID];//objectId is default parse field and objectID is the string i created
[query getFirstObjectInBackgroundWithBlock:^(PFObject * users, NSError *error) {
if (!error) {
[users setObject:self.userName.text forKey"username"];
[users saveInBackground];
NSLog(@"Done");
} else {
// Did not find any UserStats for the current user
NSLog(@"Error: %@", error);
}
}];
这个说没有结果与查询匹配。
那我有这个:
PFQuery *query = [PFQuery queryWithClassName"Users"];
[query getObjectInBackgroundWithIdbjectID block:^(PFObject *username, NSError *error) {
username[@"username"] = self.userName.text;
[username saveInBackground];
}];
与查询没有匹配结果的错误相同。如何正确查询?有人可以解释为什么这些查询不起作用吗? 这就是我在用户注册成功时检索对象 ID 的方式
//objectid is a native string and objectId is the parse default field
sharedClass.sharedInstance->objectid = sharedClass.sharedInstance->user.objectId;
这是解析数据的屏幕截图,以了解结构。
根据Parse documentation for PFUser , 和 this question on the Parse Q&A site , PFUser
是 PFObject
的一种特殊类型。
而不是使用[PFQuery queryWithClassName:]
,你需要调用[PFUser query]
来检索一个PFQuery
对象,可以搜索Users
数据库中的对象 - 例如:
PFQuery *query = [PFUser query];
[query whereKey"objectId" equalTobjectID];
[query getFirstObjectInBackgroundWithBlock:....
关于ios - 如何使用 ios 解析更新用户类中的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26543446/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |