1

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

即,而不是在每个设置器中执行诸如检查已设置的属性之类的操作...

-(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
   }
}

是否有一些方法可以实现,我可以肯定知道两个或所有属性都已映射到对象集合的一个实例?

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

4

1 回答 1

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) {

}];
于 2013-07-03T20:19:48.027 回答