如何从不同的类访问NSMutableArray

时间:2014-06-19 10:53:28

标签: arrays xcode class variables nsmutablearray

我现在已经研究了2天,似乎无法自学如何从不同的班级访问我的NSMutableArray。我想用我的旧“selectedArray”数组中的信息填充我的新“buildButtonText”数组。 我会发布所有相关的代码,我很感激任何人花时间帮我找到让我感到困扰的东西。提前感谢您的时间。

在ViewController.h中:

    @interface ViewController : UIViewController{
    NSMutableArray *selectedArray;
    }
    @property (copy, nonatomic) NSMutableArray *selectedArray;
    @end

在ViewController.m中:

    #import "ViewController.h"
    #import "ViewController2.h"

    @interface ViewController ()
    @end

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

    //....Other methods which dictate the objects in the final "selectedArray"....

    -(IBAction)Next:(id)sender{
    ViewController2 *nextViewController = [[ViewController2 alloc]init];
    nextViewController.buildButtonText = selectedArray;
    }
    //.....Or perhaps here I should use "prepareForSegue" to pass objects...?

在ViewController2.h中:

    #import "ViewController.h"
    @interface ViewController2 : UIViewController{
    NSMutableArray *buildButtonText;
    }
    @property (strong, nonatomic) NSMutableArray *buildButtonText;
    @end

在ViewController2.m中:

    #import "ViewController2.h"
    #import "ViewController.h"
    @interface ViewController2 ()
    @end

    - (void)viewDidLoad{
    buildButtonText=[[NSMutableArray alloc]init];
    NSLog(@"Count of array: %d", [buildButtonText count]);
    }

日志返回数组中的“0”项。我也尝试从第二个视图控制器询问变量,如果这实际上是正确的协议,我将非常感谢一个简短的演示。如果您无法从我的代码中辨别出来,那我就相当新了。

1 个答案:

答案 0 :(得分:0)

为什么不使用prepareForSegue?

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if([[segue identifier] isEqualToString:@"YOUR_SEGUE_IDENTIFIER"])
    {
        SECOND_VIEW_CONTROLLER *svc=[segue destinationViewController];
        svc.NSMUTABLEARRAY_TO_RECEIVE=NSMUTABLEARRAY_TO_SEND;
    }
}

也许这会有帮助吗?只需更换大写字样。

我最近刚刚启动了iOS app dev,我在同样的情况下使用了类似的东西,效果很好!请务必将第二个.h的{​​{1}}文件导入第一个文件。