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

Posted

技术标签:

【中文标题】在 Parse 中将对象添加到现有指针【英文标题】:Adding object to existing pointer in Parse 【发布时间】:2015-08-20 12:28:08 【问题描述】:

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

在子类别视图中,我可以选择添加新的子类别。我想做的是在子类别表中添加一个新行,但将其链接到刚刚选择的类别类。即将它链接到子类别表中的指针“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)

有人知道问题出在哪里吗?或者我如何解决这个问题以链接到表中的指针?

【问题讨论】:

我对 Parse 一无所知(从未使用过),但错误消息似乎很容易解释。看起来您应该使用PFObject *categories = [PFObject objectWithClassName:@"Categories"]; 之类的东西创建Categories 对象,填充它然后将其分配给newWord[@"Cat"]; 【参考方案1】:

正如@***foe 已经正确指出的那样,您传入了错误的对象。在查询/写入指针时,您需要传入指针而不是字符串。

在你的情况下应该是这样的:

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

或者,如果您在应用流程的那个时刻已经有手头的类别的本地实例,您可以像这样直接将 Cat 属性设置为该对象

newWord[@"Cat"] = myInstanceOfTheCategory;

【讨论】:

我明白了,谢谢。我将 objectId 从第一个视图控制器传递到视图控制器,我在其中添加了新词并使用了它,现在它可以工作了!

以上是关于在 Parse 中将对象添加到现有指针的主要内容,如果未能解决你的问题,请参考以下文章

如何从表中将列添加到现有视图? [复制]

在 C++ 中将新的 qml 对象添加到场景中

如何在 JPA Hibernate 映射中将 GUID(不是 PK)添加到已经具有 PK(整数)的现有实体

NodeJS将元素添加到对象

在 lejos 中将 Lines 添加到 LineMap 时出现空指针异常,找不到

在 Django 的父管理视图中将子对象链接到父对象