Unnesting?一个NSMutableArray

时间:2014-06-15 03:08:15

标签: objective-c model-view-controller nsarray

我在模型类中设置了一个NSMutableArray:

- (NSMutableArray *) list_name
{
  NSMutableArray *array = [[NSMutableArray alloc] init];
  [array addObject:@"Jack"];
  [array addObject:@"Steven"];

  return array;
}

我在控制器类中访问:

[_transferArray addObjectsFromArray:[_addModel list_name]];

_transferArrayNSMutableArray的位置 _addModelModel

然而,输出为:

  

2014-06-15 15:03:44.775跟踪[13222:607]阵列打印 - (           (           插口,           史蒂芬       )   )

因此,我只返回1的计数。

如何在结果为的其他类中使用此数组:

  

2014-06-15 15:03:44.775跟踪[13222:607]阵列打印 - (           插口,           史蒂芬   )

...

提前致谢

1 个答案:

答案 0 :(得分:0)

展平阵列。这将扩展到任何嵌套级别:

@interface NSArray (JRAdditions)

- (NSArray *)flattenedArray;

@end 

@implementation NSArray (JRAdditions)

- (NSArray *)flattenedArray; 
{
   NSMutableArray *flattened = [NSMutableArray new];            
   for(id obj in self) {
      if([obj isKindOfClass:[NSArray class]]) {
          [flattened addObjectsFromArray:[obj flattenedArray]];
      } else {
          [flattened addObject:obj];
      }
   }
   return [flattened copy]; 
}

@end

@interface NSMutableArray (JRAdditions)
- (void)flatten;
@end

@implementation NSMutableArray (JRAdditions)

- (void)flatten;
{
   [self setArray:[self flattenedArray]];
}

@end