0

obj-cで記述されたXMLパーサーに問題があります。パーサー自体は問題ありませんが、DetailViewで結果の配列にアクセスできません。

MasterとDetailViewControllerのパーサークラスによって作成された配列の値が必要です。

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]; ここでは、16進値がありますが、それでも(null)を取得します。

DetailViewから配列値にアクセスするにはどうすればよいですか?

ここで誰かが私に問題を説明してくれたら本当にいいでしょう。

ありがとう。

4

1 に答える 1

0

詳細ビューには、MasterViewが(パーサーを介して)作成する配列へのポインターが必要です。これを試してください。

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

この後、詳細ビューをプッシュできます。

于 2012-04-17T23:51:08.310 に答える