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から配列値にアクセスするにはどうすればよいですか?
ここで誰かが私に問題を説明してくれたら本当にいいでしょう。
ありがとう。