将PFObject保存为PFUser的属性

时间:2015-03-08 11:54:40

标签: objective-c parse-platform

使用Parse,我已在我的User类中创建了一个应包含PFObjects的列。 我可以像以前一样获取当前用户并更新它的每个信息,但是PFObject列。我不知道PFObject是否不能像那样存储,只能被引用或者我只是以错误的方式保存它。这是代码:

  PFObject *object = [PFObject objectWithClassName:@"User" dictionary:
   [NSMutableDictionary dictionaryWithObjectsAndKeys:currentPlace.identifier,
    [NSNumber numberWithFloat:newRating], nil]];

  [PFUser currentUser][@"rated_places"] = object;
  [[PFUser currentUser] saveInBackground];

2 个答案:

答案 0 :(得分:1)

子类PFUser。添加PFRelation。使用addObject设置PFUser与其他对象之间的关系。如果你需要一对一,那么你可以简单地使用动态属性(指针):

@property (nonatomic) MyObject* object;

在实现文件中,您只需将属性声明为动态:

@dynamic object;

使用子类,这使得生活比这个字典废话更容易。

参考:

  1. https://parse.com/docs/ios/api/Classes/PFRelation.html#//api/name/addObject
  2. https://parse.com/docs/ios/api/Protocols/PFSubclassing.html

答案 1 :(得分:0)

正如BjörnKaiser所解释的那样,我应该做的是:

  1. 为PFObject创建不同的类
  2. 使用类型指针
  3. 在User类中保留引用

    以下是它对我有用的方法:

    NSMutableDictionary *dic = [NSMutableDictionary new];
      dic[currentPlace.identifier] = [NSNumber numberWithFloat:newRating];
    
    
      PFObject *object = [PFObject objectWithClassName:@"Rating" dictionary:dic];
      [object saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
        if (!error) {
          [PFUser currentUser][@"rated_places"] = object;
          [[PFUser currentUser] saveEventually];
        }
      }];