3

XML praser から NSMutablearray をオブジェクトで埋めました。これを使用して、マップ アノテーションにデータを入力します。オブジェクトをセルに取り込むテーブルでこの配列を使用していますが、マップには同じ NSMutablearray を使用したいと考えています。

//currentBranch is filled with my Objects
Mapdets *currentBranch = [[xmlParser branch]];



[mapview setMapType:MKMapTypeStandard];
[mapview setZoomEnabled:YES];
[mapview setScrollEnabled:YES];

MKCoordinateRegion region = {{0.0, 0.0}, {0.0,0.0 }};
region.center.latitude = -33.86434888;
region.center.longitude = 151.2090236;
region.span.longitudeDelta = 0.10f;
region.span.latitudeDelta = 0.10f;
[mapview setRegion:region animated:YES];




 //Annotation code will go here. Need help with that.

わかりましたので、これが私がいるところです。タイトル、サブタイル、緯度、経度で満たされたオブジェクトで満たされたその配列を持っています。基本的にその配列をxpoldeして要素を使用したいと思います。

助けてくれてありがとう。

NSLog(@"%@", currentBranch); を実行すると、配列はそのように埋められます。

2013-02-28 07:53:53.537 SAMPLE[13642:207] (
    "<Mapdets: 0x754d3b0>",
    "<Mapdets: 0x754d5c0>",
    "<Mapdets: 0x754d710>"
)

そして、私の XMLpraser ファイルでは、次のように入力します。

- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
{
    if (isStatues) 
    {
        if ([elementname isEqualToString:@"title"]) 
        {
            currentBranch.title = currentNodeContent;


        }
        if ([elementname isEqualToString:@"street_address"]) 
        {
            currentBranch.subtitle = currentNodeContent;
        }
        if ([elementname isEqualToString:@"lng"]) 
        {
            currentBranch.lng = currentNodeContent;
        }
        if ([elementname isEqualToString:@"lat"]) 
        {
            currentBranch.lat = currentNodeContent;
        }
    }
    if ([elementname isEqualToString:@"branch"]) 
    {
        [self.branch addObject:currentBranch];
        currentBranch = nil;
        currentNodeContent = nil;

これはすべて機能しています。マップの別のクラスでこの NSMutablearray を使用したいだけです。

4

1 に答える 1

1

NSMutableArrayAppdelegate でBranch( ) を取得し、

ur .h ファイルで AppDelegate 参照を取得します

AppDelegate *appDelegate;

および.mファイルのViewDidLoadメソッドで、これを次の行に記述します

appDelegate=(AppDelegate *)[[UIApplication sharedApplication] delegate];

この行を追加します[appdelegate.branch addObject:currentBranch]。の代わりに [self.branch addObject:currentBranch];

...これで、アプリのどこでもこの appdelegate.branch(Array) を使用できます。

于 2013-02-28T07:18:35.023 に答える