0

ハイ:)

デバイス (iPhone) の位置をバックグラウンドで更新しようとしていますが、シミュレーターhttp://grab.by/meLqで動作します(注釈はバックグラウンドでのみ追加されます)。

しかし、iPhone でテストしているときは機能しません。最後の位置 (バックグラウンドになる前) と がアクティブになる位置の間に線があります。

コーディングはどうですか?

アプリがバックグラウンドにあるときにリストを作成するテストを行い、アプリケーションが再びアクティブになったときに、記録された位置のリストをロードします。(シミュレーターで作業)

    - (void)handleAddLocations {
        NSLog(@"%s | %@", __PRETTY_FUNCTION__, self.locationBackgroundList);

        if ([self.locationBackgroundList count] > 0) {
            for (CLLocation *backgroundLocation in self.locationBackgroundList) {

                if (YES){
                    LocAnnotation* annotation = [[LocAnnotation alloc] initWithCoordinate:backgroundLocation.coordinate];
                    NSLog(@"%s %@", __PRETTY_FUNCTION__, [annotation description]);
                    [self.mapView addAnnotation:annotation];
            }

        MKUserLocation *userLocation = [[MKUserLocation alloc] init];
        [userLocation setCoordinate:backgroundLocation.coordinate];

        [self mapView:self.mapView didUpdateUserLocation:userLocation];

         }
        [self.mapView updateConstraints];

        [self.locationBackgroundList removeAllObjects];
        self.locationBackgroundList = [[NSMutableArray alloc] init];
      }
  }

助けてくれてありがとう;)

4

1 に答える 1

1

バックグラウンドで場所のリストを作成して注釈を追加することをお勧めします。これは、アプリがバックグラウンドにあるときに uielements を管理することはできません。このためには、アプリがバックグラウンドにある間にすべての位置を配列に追加する必要があります。

于 2013-05-04T12:19:03.983 に答える