gpt4 book ai didi

iphone - 什么是 MKTeleportingUserLocation?

转载 作者:行者123 更新时间:2023-11-29 11:00:05 25 4
gpt4 key购买 nike

我在注释列表中看到了这个

(lldb) po [self.theMapView annotations]
$6 = 0x20a61ff0 <__NSArrayM 0x20a61ff0>
(
<BGAddressAnnotation: 0x236fad50>,
<BGAddressAnnotation: 0x23646a00>,
<BGAddressAnnotation: 0x259f20f0>,
<BGAddressAnnotation: 0x259f7480>,
<BGAddressAnnotation: 0x25811390>,
<BGAddressAnnotation: 0x23646ad0>,
<MKUserLocation: 0x20a868d0>,
<MKTeleportingUserLocation: 0x258f64d0>
)

这会导致一些错误,因为我想获取所有不是 MKUserLocation 的注释。

我在 google 上搜索 MKTeleportingUserLocation 但找不到任何内容。

最佳答案

这是未记录的内容,所以我的猜测是 MKTeleportingUserLocation 是当您的手机/模拟器将 currentLocation 注释移动很远时替换旧 currentLocation 注释的注释。看起来,它负责缩小自己并将自己从 mapView 的注释数组中移除。

来自 https://github.com/nst/iOS-Runtime-Headers/blob/master/Frameworks/MapKit.framework/MKTeleportingUserLocationView.h

- (void)animationDidStop:(id)arg1 finished:(BOOL)arg2;
- (id)dotShrinkAnimation;
- (id)initWithFrame:(struct CGRect { struct CGPoint { float x_1_1_1; float x_1_1_2; } x1; struct CGSize { float x_2_1_1; float x_2_1_2; } x2; })arg1;
- (void)orderOut;

据此我推断此注释负责缩小自身并将其从 mapView 中移除。尝试更改模拟器中的坐标并观察 currentLocation 缩小为零。一旦有了新的 currentLocation,旧的 currentLocation 就会变成 teleportingUserLocation 并缩小为零。

放这个

NSLog(@"%@", [self.mapView annotations]);

在你的

locationManager:didUpdateLocations: 

mapView:didUpdateUserLocation:

在模拟器中运行它,大幅改变坐标,这应该出现在日志中

2013-05-01 09:28:10.556 Breadcrumb[20222:c07] (
"<MKUserLocation: 0x8c40cf0>"
)
2013-05-01 09:28:10.931 Breadcrumb[20222:c07] (
"<MKUserLocation: 0x8c40cf0>",
"<MKTeleportingUserLocation: 0x18246480>"
)
2013-05-01 09:28:11.930 Breadcrumb[20222:c07] (
"<MKUserLocation: 0x8c40cf0>"
)

请注意,MKTeleportingUserLocation 在下一次更新中消失了。

关于iphone - 什么是 MKTeleportingUserLocation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16315746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com