0

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

这是我声明我的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];

当我 @"adf234" 获取 equalTo 时它可以工作,但是我是否可以根据 NSString ObjID 值进行搜索?因为当我像上面那样放置 ObjID 时它不起作用。

4

1 回答 1

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.*/
    }
}
}];
于 2014-04-15T09:11:22.440 回答