我是使用解析
的新手我知道我要问的是非常基本的,但请放轻松我
在我的程序中,当一个人登录时,我应该能够检索他的数据并将其显示在我试图使用此代码的标签上,但是我会在其中获取内容:
PFQuery *query = [PFQuery queryWithClassName:@"User"];
[query getObjectInBackgroundWithId:[PFUser currentUser].objectId block:^(PFObject *user, NSError *error) {
_name.text = user[@"usrename"];
_age.text = [NSString stringWithFormat:@"%@",user[@"age"]];
_phone.text = [NSString stringWithFormat:@"%@",user[@"phone"]];
我也得到了这个消息:
2014-03-15 17:16:41.226 abc[7005:60b] Error: no results matched the query (Code: 101, Version: 1.2.18) 2014-03-15 17:16:41.226 abc[7005:60b] (null)
答案 0 :(得分:2)
登录后你不必进行查询,用户就在那里:
[PFUser logInWithUsernameInBackground:@"userName" password:@"secretPassword" block:^(PFUser *user, NSError *error) {
_name.text = user.username;
_age.text = [NSString stringWithFormat:@"%@",user[@"age"]];
_phone.text = [NSString stringWithFormat:@"%@",user[@"phone"]];
}];
如果您需要在应用中的任何其他位置访问它,解析会为您创建一个单例:
NSLog(@"The Current User Is: %@", [PFUser currentUser]);
其他说明:
PFQuery *query = [PFQuery queryWithClassName:@"User"];
应该是:
PFQuery * userQuery = [PFUser query]; // for user queries
您正在使用当前用户对象在后台获取当前用户:
[query getObjectInBackgroundWithId:[PFUser currentUser].objectId block:^(PFObject *user, NSError *error) {
_name.text = user[@"usrename"];
_age.text = [NSString stringWithFormat:@"%@",user[@"age"]];
_phone.text = [NSString stringWithFormat:@"%@",user[@"phone"]];
}];
如果您已有权访问当前用户对象,则可以像这样更新它以从解析中获取最新信息
[[PFUser currentUser] fetchIfNeededInBackgroundWithBlock:^(PFObject *object, NSError *error) {
if (!error) {
// user is fully loaded
}
}];