如何从另一个类访问NSMutablearray的内容?

时间:2014-04-22 13:55:33

标签: objective-c

我有一个FirstViewControlloller,我有一个开始和停止按钮。按下开始时,使用AVCaptureSession拍摄照片,直到按下停止按钮。处理这些图片并将每张图片的信息(RGB的R值分量)存储在名为Yaxis的NSMutableArray中。

添加到此视图我有一个ContainerView。在这个视图中,我想继续显示我的Yaxis数组中的信息图。问题是要获得这些信息。

我的代码的某些部分如下:

FirstViewController.h

@property (nonatomic, strong) NSMutableArray *Yaxis;

FirstViewController.m

    -(void)viewDidLoad{ 
     Yaxis=[[NSMutableArray alloc] init];
     [super viewDidLoad];
     } 

在代码对象的另一个地方不断添加到" Yaxis"照片拍摄。

[Yaxis addObject: RGB];

这很好用,因为只要我在FirstViewController中访问填充信息的数组就没有问题。

为了能够使用这些信息来更新我的图形,我试图在我的ContainerViewController中创建FirstViewController的对象,并以这种方式到达我的Yaxis数组。

ContainerViewController.m

FirstViewController * myView=[[FirstViewController alloc] init];

myView.Yaxis

当我这样做时,Yaxis为空。据我所知,问题是我创建了一个FirstViewController的新对象,因此我无法访问实际上是另一个对象的一部分的填充数组。那么如何从我的ContainerViweController类中连接到保存我填充的Yaxis数组的对象?

Access NSMutableArray from another class - Objective C

我发现这个问题接缝可以解决同样的问题,但我没有使用那里的答案来解决我的问题。

2 个答案:

答案 0 :(得分:0)

您在-(void)viewDidLoad中初始化数组。但是,在第二个代码段中,该方法不会被调用。尝试将Yaxis=[[NSMutableArray alloc] init];行添加到init方法

答案 1 :(得分:0)

当您手动创建新的FirstViewController时,这是一个与原始对象无关的新对象,并且可变数组属性最初为nil。 新的VC不会神奇地指向显示的那个。此外,VC可能会销毁,并释放数组。

如果在VC之间共享,则应将此数据的存储分隔在另一个对象中。