PFQuery不会返回值

时间:2014-04-15 07:07:49

标签: ios parsing pfquery

所以我能够将数据存储到我的解析类中,但是我无法读出这些值。

这是我在 Userinfo 类和我的 User 类之间声明关系的地方:

 PFObject *userObject = [PFObject objectWithClassName:@"UserInfo"];
 [userObject setObject:[PFUser currentUser] forKey:@"Username"];

然后我在UserInfo类中设置值并且它正确存储,但是当我从数据库中读取值时,我没有读出任何对象。

PFQuery *load =[PFQuery queryWithClassName:@"UserInfo"];
[load whereKey:@"Username" equalTo:[PFUser currentUser]];

[load findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){
    if(!error)
    {
        if (!error) {
            infoArray = [[NSArray alloc] initWithArray:objects];
            NSLog(@"Successfully retrieved %d obj.", infoArray.count); //this comes back as zero
            NSLog (@"idummy %@", infoArray);
        }
    }
}];

我觉得我很接近但却错过了一步,我也检查过我没有执行任何代码   - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 除了我的解析密钥和客户端ID。

更新:

所以我已经找到了上述问题:

NSString * ObjID = curr.objectId;

PFQuery *load =[PFQuery queryWithClassName:@"UserInfo"];
[load whereKey:@"objectId" equalTo:ObjID];

当i @“adf234”为equalTo时它可以工作,但是我可以根据NSString ObjID值进行搜索吗?因为当我把ObjID放在上面时它不起作用。

1 个答案:

答案 0 :(得分:0)

只需更改

PFQuery *load =[PFQuery queryWithClassName:@"UserInfo"];
/*[load whereKey:@"Username" equalTo:[PFUser currentUser]];*/ No need of this

[query includeKey:@"Username"];

[load findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){
if(!error)
{
    if (!error)
    {
        NSDictionary *dict = [objects objectAtIndex:0];
        NSLog(@"Successfully retrieved %d obj.",[[dict objectForKey:@"Username"] objectForKey:@"username"]);  

      /* I was also getting it null but if you try to nslog [PFUSer currentUser] you will get details but I tried for object key pair then got details so similarly you will get all other details of user by providing different keys.*/
    }
}
}];