Objective C - Parse.com 保存和读取地理位置 IOS

Posted

技术标签:

【中文标题】Objective C - Parse.com 保存和读取地理位置 IOS【英文标题】:Objective C - Parse.com Save and Read Geolocation IOS 【发布时间】:2013-11-24 22:04:08 【问题描述】:

我想从 Parse 数据库中读取地理位置并在地图中显示其他用户的位置。

我将位置写入解析数据库:

 [PFGeoPoint geoPointForCurrentLocationInBackground:^(PFGeoPoint *geoPoint, NSError *error) 
    if (!error) 




       [[PFUser currentUser] setObject:geoPoint forKey:@"currentLocation"];
        [[PFUser currentUser] saveInBackground];

然后我阅读了用户名和位置

     PFQuery *User = [PFUser query];
    [User selectKeys:@[@"username"]];
    [User findObjectsInBackgroundWithBlock:^(NSArray *results, NSError *error) 


        Name = results;


              ];

    PFQuery *Location = [PFUser query];
    [Location   selectKeys:@[@"currentLocation",]];
    [Location findObjectsInBackgroundWithBlock:^(NSArray *location, NSError *error)
     


        Coordinaten = location;

 ];




    NSLog(@" %@ hat die %@",Name , Coordinaten);
   // ann.title = [Name objectAtIndex:1] ;
   // ann.coordinate = [[Coordinaten objectAtIndex:1] coordinate];
  //  [MapView addAnnotation:ann];

第一个问题是,NSLog 什么都不显示。当我在 Coordinaten = Location 下复制 NSLog 时,它们只显示 Coordinaten 的值。在 Name = results 下只有 Names 。

NSArray Coordinaten / 名称在 .h 中减速

接下来是,我如何用这些 NSArrays 设置标题和坐标

 // ann.title = [Name objectAtIndex:1] ;
   // ann.coordinate = [[Coordinaten objectAtIndex:1] coordinate];
  //  [MapView addAnnotation:ann];

谢谢!

【问题讨论】:

【参考方案1】:

这又是一个不了解异步编程本质的案例。

考虑这种情况:

你想做一个鸡蛋三明治。你把鸡蛋煮沸,并在它们煮熟的时候设置一个闹钟,把它们拿出来,剥皮,切碎,然后把它们加到你的三明治里。当你等待时,你得到面包和黄油,然后等待警报响起。

您对findObjectsInBackgroundWithBlock 的呼叫正在将鸡蛋煮沸。你通过的方块是警报,以及你打算如何处理煮熟的鸡蛋。

您上面的代码类似于将鸡蛋煮沸,然后立即尝试在三明治上使用未煮熟/半煮熟的鸡蛋。到那时,他们可能已经煮熟了,也可能煮得不够熟。通常它会造成很大的混乱。

一种解决方案是在您传递给方法的块末尾调用方法。

【讨论】:

这真是一个很棒的答案,我想知道为什么它没有得到更多的关注。这确实是异步编程的一个很好的例子。

以上是关于Objective C - Parse.com 保存和读取地理位置 IOS的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用objective-c从parse.com检索数据并将其显示在网站上?

在 iOS 中使用 parse 和 Objective-C 购买应用程序

将 Objective-C iOS 应用程序迁移到自托管 Parse-Server 的问题

在Objective C中获取自定义对象数组[关闭]

Swift和Objective-C的优缺点对比

如何在Swift中调整图像大小?