我想将 MKMapPoint 转换为 NSValue。在 Objective-C 中我可以用下面的语句来做到这一点:
MKMapPoint point = MKMapPointForCoordinate(location.coordinate);
NSValue *pointValue = [NSValue value:&point withObjCType:@encode(MKMapPoint)];
我怎样才能在斯威夫特做到这一点?
谢谢!
这在 Swift 中是不可能的,但您仍然可以在 ObjC 中创建一个类别并在 Swift 项目中使用它
// NSValue+MKMapPoint.h
@interface NSValue (MKMapPoint)
+ (NSValue *)valueWithMKMapPoint:(MKMapPoint)mapPoint;
- (MKMapPoint)MKMapPointValue;
@end
// NSValue+MKMapPoint.m
@implementation NSValue (MKMapPoint)
+ (NSValue *)valueWithMKMapPoint:(MKMapPoint)mapPoint {
return [NSValue value:&mapPoint withObjCType:@encode(MKMapPoint)];
}
- (MKMapPoint)MKMapPointValue {
MKMapPoint mapPoint;
[self getValue:&mapPoint];
return mapPoint;
}
@end
Swift 中的用法:
let mapValue = CGValue(MKMapPoint: <your map point>)
let mapPoint = mapValue.MKMapPointValue();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)