parse.com从currentUser获取指针数据

时间:2015-01-03 16:35:08

标签: objective-c parse-platform

我在PFUser中有一个指针键,我试图检索它指向的对象。我已经看过很多关于查询它的例子,但不应该有任何需要,因为parse有fetch方法,而且它是PFUser类的指针,所以我用这个:

PFObject *menu = [[[PFUser currentUser] objectForKey:@"menuID"] fetchIfNeeded];

我知道我当前的用户在该键中指向了一个对象,但我一直得到一个空菜单对象

2 个答案:

答案 0 :(得分:0)

默认情况下,currentUser没有填充任何自定义添加的数据列。您需要获取用户以下载该数据,然后您可以在本地使用它。

或者你的油我们是云代码并保存网络请求。

答案 1 :(得分:0)

Wain说你需要获取currentUser是正确的。但是,如果要使用fetchInBackground,则必须记住我们正在使用多个线程。要保持单个线程,只需使用[[PFUser currentUser] fetch],但请记住,当互联网连接不良时,这可能会导致用户挂起或阻止。以下是如何更有效地使用它的示例。 (与菜单的fetch和fetchInBackground相同的问题)我们也必须获取菜单,因为它是一个指针,因此currentUser只会获取指针而不是整个对象。

[[PFUser currentUser] fetchInBackgroundWithBlock:^(PFObject *object, NSError *error) {
    if(!error){
        PFObject *menu = object[@"menuID"];
        [menu fetch];
        // Execute any code that needs the menu here, or store it in your viewController (or other class variable) if you need to save it for later  

        // Alternately, you could use this:
        dispatch_async(dispatch_get_main_queue(), ^{
            [menu fetchInBackgroundWithBlock:^(PFObject *fetchedMenu, NSError *menuError) {
                if(!menuError){
                    // Execute any code that needs the menu here, or store it
                } else {
                    NSLog(@"%@", menuError);
                }
            }];
        });
    } else {
        NSLog(@"%@", error);
    }
}];