ハイ:)
デバイス (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];
}
}
助けてくれてありがとう;)