在类之间传输NSMutableArray

时间:2015-05-07 01:25:44

标签: objective-c xcode macos class nsmutablearray

我看过其他帖子,但没有一个是有道理的。我有一个AppController(用于NSCollectionView),我有一个名为filePaths的表。文件路径是@property。我的目标文件(用于集合视图)需要这些路径。如何将文件路径从AppController传输到我的文件类?尽管我已经阅读了很多关于他们的信息,但单身人士和其他事情让我感到困惑。如果您有一个涉及单身人士或类似事件的答案,请解释一下,因为我不知道发生了什么。

2 个答案:

答案 0 :(得分:0)

只需将其分配给某个属性即可。

答案 1 :(得分:0)

如果您正在使用故事板,则需要使用通常位于视图控制器底部的“准备segue”方法。

您将在标题中的目标视图控制器中创建一个属性:

@property (nonatomic) NSMutableArray *recievedArray;

并且在你的原点视图中控制器的m文件(最初是可变数组的m文件)你将导入顶部的目标视图控制器,如此

#import "DestinationViewController.h"

现在我们将填充“prepareForSegue”:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
      if ([[segue identifier] isEqualToString:@"segueToDestinationViewController"]) {

           DestinationViewController *vc = [segue destinationViewController];
           [vc setRecievedArray:theMutableArray];
      }
}

其中“segueToDestinationViewController就是你在故事板中设置的那样(我从其他地方重用了这个图像,但你想点击segue箭头并用”segueToDestinationViewController“填写”Identifier“)enter image description here

现在你已经完成所有设置,并且将在segue上正确分配属性!

编辑:您还可以通过创建单例类并将此方法添加到其中来轻松设置单例:

+ (id)sharedManager {
static MyManager *sharedMyManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
    sharedMyManager = [[self alloc] init];
});
return sharedMyManager;

然后,您将使用类似

的类方法调用单例的单个实例
MyManager *mySingleton = [MyManager sharedManager];

像这样通过GCD非常简单,所以你应该没事。现在,您所要做的就是从单例实例中获取属性。