使用RestKit,有一种方法可以在单个对象上的对象映射完成时运行代码吗?

时间:2013-07-03 17:27:14

标签: ios restkit restkit-0.20

我正在我的本地对象类型上实现我的属性setter方法,所以当RestKit从JSON有效负载设置我的对象值时,我可以做一些额外的工作;但是,在我确定已经确定了其中3个属性之后,我还需要做一些工作。

,而不是在每个setter执行类似检查以查看已设置的属性...

-(void) setSomeValue:(NSNumber *someValue){
   self.someValue  = someValue;
   //do some extra stuff here
   if(self.otherValue){
      //do some calculation using someValue and otherValue
   }
}

-(void) setOtherValue:(NSNumber *otherValue){
   self.otherValue  = otherValue;
   //do some extra stuff here
   if(self.someValue){
      //do some calculation using someValue and otherValue
   }
}

我是否可以实现一些方法,我肯定知道已经为一组对象的一个​​实例映射了两个或所有属性?

或者至少有一种方法可以指定对象的映射顺序,这样我可以确保在依赖其他对象之前设置哪些顺序?

1 个答案:

答案 0 :(得分:2)

在映射操作完成后,您可以迭代遍历所有对象,而不是实现setter:

[RKObjectManager sharedManager] getObjectsAtPath:@"path/to/my/objects" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
    NSArray *objects = mappingResult.array;
    for (id obj in objects) {

       if ([obj isKindOfClass:[Entity class]]) {
          Entity *entity = obj;

          if (entity.someProperty && entity.anotherProperty) {
            //do stuff
          }
       }
    }
} failure:^(RKObjectRequestOperation *operation, NSError *error) {

}];