从解析中检索数据行

时间:2014-03-15 15:14:01

标签: ios7 parse-platform

我是使用解析

的新手

我知道我要问的是非常基本的,但请放轻松我

在我的程序中,当一个人登录时,我应该能够检索他的数据并将其显示在我试图使用此代码的标签上,但是我会在其中获取内容:

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)

1 个答案:

答案 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
    }
}];