【问题标题】:Using NSMutableArray for Map Annotations使用 NSMutableArray 进行地图标注
【发布时间】:2013-02-28 05:43:27
【问题描述】:

我已经用我的 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。

【问题讨论】:

  • 这可能是一个帮助:stackoverflow.com/questions/8711086/…
  • 你能告诉我们你的数组内容吗????您必须在该数组中有字典。
  • 我添加了一些修改后的代码来填充数组。谢谢
  • 你的 NSLog 中的这些值看起来像你的值吗????我想你首先需要先正确解析你的 xml。
  • @Smriti 如果我这样做,如果我更改整数,我可以看到每个值。 NSInteger 索引 = 1; Mapdets *currentBranch = [[xmlParser 分支] objectAtIndex:index]; NSString *title = currentBranch.title;

标签: iphone objective-c sdk


【解决方案1】:

在 Appdelegate 中使用 Branch(NSMutableArray) 和

在你的 .h 文件中获取 AppDelegate 参考

AppDelegate *appDelegate;

并在 .m 文件中的 ViewDidLoad 方法中写下这一行

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

并添加这一行[appdelegate.branch addObject:currentBranch];而不是[self.branch addObject:currentBranch];

...现在您可以在您的应用程序中的任何位置使用此 appdelegate.branch(Array)。

【讨论】:

    猜你喜欢
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    相关资源
    最近更新 更多