共享两个类之间的数组

时间:2011-02-22 06:37:16

标签: iphone objective-c

我目前有两个数组,每个类1个,但我在显示另一个viewController之前克隆它们。无论发生什么事,在一个viewController中删除一个项目,我在需要时克隆另一个ViewController的数组。

使这些ViewControllers读写同一个数组的最佳方法是什么?我想要一个共享的数组资源,我可以访问,从2个viewControllers修改,可能是第三个,必要时。

如果没有克隆,这是如何完成的。

3 个答案:

答案 0 :(得分:1)

如果数组仅由两个视图控制器共享,则让它们指向同一个对象。

@interface FirstViewController {
    //...
    NSMutableArray *arrayData;
} 
@property (nonatomic, retain) NSMutableArray *arrayData;
@end

@interface SecondViewController {
    //...
    NSMutableArray *arrayData;
} 
@property (nonatomic, retain) NSMutableArray *arrayData;
@end

代码中的某个地方

NSMutableArray *array = [[NSMutableArray alloc] init];
firstViewController.arrayData = array;
secondViewController.arrayData = array;
[array release];

此阵列在概念上成为您设计的模型。如果两个视图控制器对可以抽象的数组的数据执行相同的任务,请考虑使用包含该数组的自定义类并充当模型类。

答案 1 :(得分:0)

您可以创建一个包含数组的单例类,然后通过sharedInstance访问它。我建议this article审查这种情况的各种方法。

答案 2 :(得分:0)

这可能很好地利用了模型 - 视图 - 控制器范例。将数组分解为两个视图控制器都可以访问的模型。