我目前有两个数组,每个类1个,但我在显示另一个viewController之前克隆它们。无论发生什么事,在一个viewController中删除一个项目,我在需要时克隆另一个ViewController的数组。
使这些ViewControllers读写同一个数组的最佳方法是什么?我想要一个共享的数组资源,我可以访问,从2个viewControllers修改,可能是第三个,必要时。
如果没有克隆,这是如何完成的。
答案 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)
这可能很好地利用了模型 - 视图 - 控制器范例。将数组分解为两个视图控制器都可以访问的模型。