在Swift中将MKMapPoint转换为NSValue
我想将MKMapPoint转换为NSValue。 在Objective-C中,我可以使用以下语句来完成:
MKMapPoint point = MKMapPointForCoordinate(location.coordinate); NSValue *pointValue = [NSValue value:&point withObjCType:@encode(MKMapPoint)];
我怎么能在Swift中做到这一点? 谢谢!
在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: ) let mapPoint = mapValue.MKMapPointValue();
遗憾的是,这在Swift中是不可能的。
尝试这个
let mapPoint = MKMapPointForCoordinate(coordinate) let type = NSValue(MKCoordinate: coordinate).objCType // <- THIS IS IT let value = NSValue(bytes: unsafeAddressOf(mapPoint as! AnyObject), objCType: type);
- Swift 3.0错误:转义闭包只能通过值显式捕获inout参数
- 在收到Apple statusUpdateNotification以进行自动续订订阅时,如何确定客户/用户?
- 标签栏单击委托
- 调用一个包含#的数字。 (iPhone SDK)
- GCM注册尚未准备好使用ios9中的身份validation凭据
- 警告:尝试在<GuessMeFinal.ViewController>上显示<GuessMeFinal>,其视图不在窗口层次结构中 – Swift
- 有效地将UISearchController与UICollectionView结合使用
- parsing从Cloud代码向特定用户发送推送通知
- 观察类中静态variables的值?