如何在另一个视图中访问NSArray

时间:2012-04-17 23:43:51

标签: objective-c ios nsmutablearray nsarray

我的XML解析器存在一些问题,用obj-c编写。 解析器本身很好但我无法在DetailView中访问结果数组。

我需要在Master和DetailViewController中由Parser类创建的数组的值。

在MasterViewController中我这样做:

MasterViewController.h

#import <UIKit/UIKit.h>
#import "AppDelegate.h"
#import "TouchXML.h"
#import "Parser.h"

@class Parser;

@interface MasterViewController : UITableViewController{
    Parser *theParser;
    }

MasterViewController.m

- (void)viewDidLoad
{
    theParser = [[Parser alloc] init];
    [theParser startParser:xmlPath]; //Now the parser runs and parses all needed values into arrays
}

然后我继续点击DetailView,我也想访问那里的值。

UniViewController.h

#import <UIKit/UIKit.h>
#import "AppDelegate.h"
#import "Parser.h"

@interface UniViewController : UITableViewController{

    Parser *theParser;
}

UniViewController.m

- (void)viewDidLoad
{
   NSLog(@"Name: %@",[[theParser.listArray objectAtIndex: 0]valueForKey:@"name"]);
}

这里我想从解析器访问数组,但我总是得到值(null)? 在调试器中,我看到theParser有0x0000,这是不对的... 在我做theParser = [[Parser alloc] init]之后;这里,它有一个十六进制值,但我仍然得到(null)。

如何从DetailView访问Array值?

如果有人能在这里解释我的问题,那会非常好。

感谢。

1 个答案:

答案 0 :(得分:0)

你的详细视图必须有一个指向你的MasterView创建的数组的指针(通过解析器),试试这个:

(void)viewDidLoad
{
    aParser = [[Parser alloc] init];
    [aParser startParser:xmlPath];
    myUniView.theParser = aParser; //myUniView is just the detail view you're pushing

然后在此之后您可以推送您的详细信息视图。