首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有关系的PFObject子类

带有关系的PFObject子类
EN

Stack Overflow用户
提问于 2015-06-11 15:01:39
回答 1查看 172关注 0票数 0

我有两门课:

代码语言:javascript
复制
@interface RMEvent : PFObject <PFSubclassing>
@property (nonatomic, strong) NSArray *attachments;

代码语言:javascript
复制
@interface RMFile : PFObject <PFSubclassing>
@property (nonatomic, strong) PFObject *event;

我要这么做:

代码语言:javascript
复制
RMEvent *newEvent = [RMEvent object];
[newEvent pinInBackground];
RMFile *newFile = [RMFile object];
newFile.event = newEvent;
[newFile pinInBackground];
[newEvent addObject:newFile forKey:@"attachments"];

我可以看到对象是在本地创建的(通过对localDatabase的查询进行测试)。一切看起来都还好。但是我做了(在很多不同的组合中):

代码语言:javascript
复制
[newEvent saveEventually];
[newFile saveEventually];

我在服务器上什么也看不见。如何将这些对象保存到服务器?什么是正确的顺序,还是我做错了什么?

P.S.:我在每个子类‘+load方法中都有自registerSubclass,并且在RMEvent的+object方法中实例化一个数组,所以不应该是这样的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-11 15:05:27

您应该检查saveEventually回调是否出错。

代码语言:javascript
复制
[newFile saveEventually:^(BOOL success, NSError *error) {
    if (error) NSLog(error);
}];

RMFile是PFFile子类吗?如果是这样,则不能saveEventually一个PFFile,也不能保存一个对象,该对象作为指向未保存的新PFfile的指针

编辑:“在保存时找到一个循环依赖项”

没有云代码:

代码语言:javascript
复制
RMEvent *newEvent = [RMEvent object];
RMFile * newFile = [RMFile object];

newEvent[@"newFile"] = newFile;
[newEvent saveInBackgroundWithBlock:^(BOOL success, NSError *error)
{
    if(!error)
    {
        newFile[@"newEvent"] = newEvent;
        [newFile saveEventually];
    }
}];

使用CloudCode:

代码语言:javascript
复制
RMEvent *newEvent = [RMEvent object];
RMFile * newFile = [RMFile object];
newEvent[@"newFile"] = newFile;
[newEvent saveInBackground];

然后在CloudCode afterSave触发器上,您可以检索您的RMEvent,从中获取' newFile‘键,在newFile对象上指定一个指向newEvent的指针,然后保存newFile

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30784478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档