0
我使用的是MKMapSnapShotter
,但是当我在return finalImage
上设置断点时,我可以看到该值仅为空ObjectiveC.NSObject
,而不是UIImage
。为什么我的UIImage在Swift中没有正确设置?
func getIMG() -> UIImage{
var finalImage = UIImage();
let imageOptions = MKMapSnapshotOptions();
imageOptions.region = mapView.region;
imageOptions.size = mapView.frame.size;
imageOptions.showsBuildings = true;
let imgMap = MKMapSnapshotter(options: imageOptions);
imgMap.start(completionHandler: { (imageObj: MKMapSnapshot?, Error) -> Void in
if(Error != nil){
print("\(Error)");
}else{
finalImage = imageObj!.image;
}
});
return finalImage;
}
我的地图加载正确等,所以问题必须在这里。此外,什么是用于测试目的的最快和最简单的方式来查看图像? (我不想为了看它生成的图像而设计一个imageView等等)。
干杯
UPDATE:
func getIMG(completion: @escaping (UIImage)->()){
var finalImage = UIImage();
let imageOptions = MKMapSnapshotOptions();
imageOptions.region = mapView.region;
imageOptions.size = mapView.frame.size;
imageOptions.showsBuildings = true;
let imgMap = MKMapSnapshotter(options: imageOptions);
imgMap.start(completionHandler: { (imageObj: MKMapSnapshot?, Error) -> Void in
if(Error != nil){
print("\(Error)");
}else{
finalImage = imageObj!.image;
}
completion(finalImage);
});
}
-
map.getMapAsIMG{ (image) in
print(image);
};
注:编译器需要我用@escape ...
这样做很有意义,我现在要做实验,并且会回复给您。还欢呼 –
,即使当我在'finalImage = imageObj!.image;'上放置了一个断点时,该值仍然以空的NSObject形式出现......当然,这意味着还有另一个无法解决的问题? –
你尝试关闭吗? –