MKMapSnapshotter 'completionHandler' 未在 iPhone 上调用 6/6+
MKMapSnapshotter 'completionHandler' not called on iPhone 6/6+
我正在开发适用于 MKMapSnapshotter
API 的应用程序。
它制作具有所需区域的地图快照。
它的代码从前台应用程序状态和主线程调用,如下所示:
MKMapSnapshotOptions* options = [[MKMapSnapshotOptions alloc] init];
options.region = MKCoordinateRegionMake(locationCenter, span);
options.scale = UIScreen.mainScreen.scale;
options.size = size;
__block typeof(self) blockSelf = self;
MKMapSnapshotter* snapshooter = [[MKMapSnapshotter alloc] initWithOptions: options];
[snapshooter startWithCompletionHandler: ^(MKMapSnapshot* snapshot, NSError* error) {
blockSelf.snapshot = snapshot.image;
}];
我注意到在 iPhone 6 和 6+ 上从未调用完成处理程序,在 iOS 8 和 9 上进行了测试。
在 iOS 模拟器中,一切都按预期工作,使用 Xcode 7、iOS 8 和 9 进行了测试。
任何想法 - 如何解决这个问题?
试试这个
__block __strong typeof(self) blockSelf = self
我正在开发适用于 MKMapSnapshotter
API 的应用程序。
它制作具有所需区域的地图快照。
它的代码从前台应用程序状态和主线程调用,如下所示:
MKMapSnapshotOptions* options = [[MKMapSnapshotOptions alloc] init];
options.region = MKCoordinateRegionMake(locationCenter, span);
options.scale = UIScreen.mainScreen.scale;
options.size = size;
__block typeof(self) blockSelf = self;
MKMapSnapshotter* snapshooter = [[MKMapSnapshotter alloc] initWithOptions: options];
[snapshooter startWithCompletionHandler: ^(MKMapSnapshot* snapshot, NSError* error) {
blockSelf.snapshot = snapshot.image;
}];
我注意到在 iPhone 6 和 6+ 上从未调用完成处理程序,在 iOS 8 和 9 上进行了测试。
在 iOS 模拟器中,一切都按预期工作,使用 Xcode 7、iOS 8 和 9 进行了测试。
任何想法 - 如何解决这个问题?
试试这个
__block __strong typeof(self) blockSelf = self