解析 - 使用关系与指针?

ary*_*axt 9 ios parse-platform

我正在使用Parse作为我的后端.我在设置对象之间的正确关系时遇到问题.

我基本上有一个名为Post的类,每个帖子属于一个用户(PFUser),并且在获取帖子时我希望用帖子提取用户信息.

@interface Post : PFObject<PFSubclassing>

@property (nonatomic, strong) NSDate *time;
@property (nonatomic, strong) NSString *title;
@property (nonatomic, strong) NSString *body;
@property (nonatomic, strong, readonly) PFRelation *user;
// User in backed is defined as a relationship to _user    

@end

// Saving the post
[post.user addObject:[PFUser currentUser];
[post saveInBackground];
Run Code Online (Sandbox Code Playgroud)

这工作正常,并将帖子与该用户相关联,但是当我稍后尝试获取帖子时,似乎我无法从PFRelation获取_user的实例.

处理这个问题的正确方法是什么?尝试将PFRelation更改为PFUser,但这会因为尝试在PFUser对象上调用save而崩溃

Tim*_*ers 21

关系适用于何时需要一长串相关类,数组不起作用,或者您希望根据需要查询相关对象以及每次加载包含对象时都不包含列表的情况.

基本上你有2个Parse选项:

  • 指针 - 对另一个类的单引用(1到0..1)
  • Array - 指针集合,每次都加载对象(1到0..n,小列表)
  • Relation - 指针的集合,比如SQL中的连接表(在你的封面下处理),你必须对它运行一个查询来加载值(1到0..n)
  • 自定义连接类 - 实际上只是另一个对象(如SQL中的多对多连接),每边都有一个指针加上任何相关信息(1..n到1..n)

在你的情况下,一个简单的指针可以做你想要的.

  • @aryaxt 帖子的评论计数实际上是文档中涵盖的内容。虽然您可以使用 `countObjects` 查询,但更容易使用一些 Cloud Code,在保存评论后增加 Post 上的计数器(使用 `incrementKey`)。 (2认同)