在 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 中将对象添加到现有指针的主要内容,如果未能解决你的问题,请参考以下文章
如何在 JPA Hibernate 映射中将 GUID(不是 PK)添加到已经具有 PK(整数)的现有实体