MonoTouch:CLLocationManagerDelegate UpdatedLocation

时间:2012-11-07 02:31:57

标签: ios xamarin.ios

CLLocationManagerDelegate中的UpdatedLocation现已过时。

我如何获得此功能以及在什么新函数调用下?

OLD:

        public override void UpdatedLocation (CLLocationManager manager, CLLocation newLocation, CLLocation oldLocation)
        {
            manager.StopUpdatingLocation ();
            locationManager = null;
            callback (newLocation);
        }

1 个答案:

答案 0 :(得分:3)

从iOS 6开始,您必须覆盖代理中的LocationsUpdated方法:

public override void LocationsUpdated (CLLocationManager manager, CLLocation[] locations)
{
    // Code
}

locations参数将始终包含至少一个CLLocation对象,最近的位置将是数组中的最后一个项目:

CLLocation recentLocation = locations[locations.Length - 1];

如果您的应用支持iOS 5,则可以保留UpdatedLocation方法。无需其他更改,当您致电StartUpdatingLocationStopUpdatingLocation时,同样适用。

Apple在CLLocationManager的{​​{1}}方法here的文档中对此进行了解释。