在Parse中将对象添加到现有指针

时间:2015-08-20 12:28:09

标签: ios objective-c parse-platform

我正在为我的项目使用Parse SDK。它首先在PFQueryTableView中显示类别列表。在选择类别时,它还会在PFQueryTableView中显示与所选类别关联的子类别。此子类别类具有指向第一个Categories类的指针值。

enter image description here

在子类别视图中,我可以选择添加新的子类别。我想要做的是向子类别表添加一个新行,但将其链接到刚刚选择的Categories类。即将其链接到指针" Cat"在子类别表中。

    PFObject *newWord = [PFObject objectWithClassName:@"words"];

    newWord[@"word"] = self.wordTextField.text;
    newWord[@"user"] = [PFUser currentUser];
    newWord[@"Cat"] = @"Categories";

    [newWord saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
        if (succeeded) {

        } else {
            UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error!"
                                                                message:[error.userInfo objectForKey:@"error"]
                                                               delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
            [alertView show];
        }
    }];

我一直收到这个错误:

[Error]: invalid type for key Cat, expected *Categories, but got string (Code: 111, Version: 1.8.0)

任何人都知道问题是什么?或者我如何解决这个问题以链接到我表中的指针?

1 个答案:

答案 0 :(得分:1)

正如@trojanfoe已经正确指出的那样,你传递了一个错误的对象。查询/写入指针时,需要传入指针而不是字符串。

这就是你的情况应该是这样的:

newWord[@"Cat"] = [PFObject objectWithoutDataWithClassName:@"Categories" 
                                                  objectId:@"{ID_OF_THE_CATEGORY_OBJECT}"];

或者,如果您已在应用流程的那一点上拥有该类别的本地实例,则可以直接将 Cat 属性设置为此对象

newWord[@"Cat"] = myInstanceOfTheCategory;