【问题标题】:Storing a persistent CLLocation存储一个持久的 CLLocation
【发布时间】:2010-11-20 04:28:32
【问题描述】:

我想我在某处遗漏了一些明显的东西。 我有一个 (CLLocation *)lastqueriedlocation 在标头中定义为属性并合成。我想在 locationManager:didUPdateToLocation:fromLocation 中更新它:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{ CLLocationDistance dist = [lastQueriedLocation getDistanceFrom:newLocation]; 如果(距离> 1000){ 最后查询位置 = 新位置; [自我搜索:lastQueriedLocation]; } if ([resultArray 计数] > 0) { [自我查找AndDisplayNearestLocation:位置]; } }

lastQueriedLocation 在 vi​​ewDidLoad 中分配和初始化。

问题当然是lastQueriedLocation = newLocation; 会导致EXC_BAD_ACCESS。那么持久化 lastQueriedLocation 的正确方法是什么?

如果它有助于使问题更具体 - reSearch 正在调用一个网络服务来获取位置 2 公里内的 POI - 所以我只想在我们移动 1 公里时这样做......但我仍然想保持准确度最好的,这样我就可以突出显示最近的,滚动地图等。

【问题讨论】:

    标签: objective-c iphone persistence core-location


    【解决方案1】:

    您只是设置 iVar 而不是综合属性,这意味着 newLocation 不会被属性保留。

    lastQueriedLocation = newLocation; 替换为:

    [self setLastQueriedLocation:newLocation];
    

    或者,如果您更愿意使用点表示法:

    self.lastQueriedLocation = newLocation;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-02
      • 2021-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      相关资源
      最近更新 更多