我正在尝试使用新的 iOS7 MKMapSnapshotter 来生成静态地图图像。每当我的应用需要地图时,我都会调用以下命令:
MKMapSnapshotter *snapshotter = [[[MKMapSnapshotter alloc] initWithOptions:theOptions] autorelease];
dispatch_queue_t aQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0);
DebugLog(@"Snapshotter allocated %@ and run on queue %@", snapshotter, aQueue);
[snapshotter startWithQueue:aQueue completionHandler:^(MKMapSnapshot *snapshot, NSError *error) {
DebugLog(@"Snapshotter completion block %@", snapshotter);
// perform selector on main thread to set self.imageView.image = shanpshot.image;
}
在大多数情况下,这很好用。但是有时,设备似乎因地图请求而过载,然后停止渲染。在我的日志文件中,我将看到关于“已分配快照程序”的第一条日志语句,但从未看到“快照程序完成块”消息。
我的请求是否有可能永远不会从调度队列中执行?有没有人遇到过这个问题?