Преобразование MKMapPoint в NSValue в Swift

Я хочу преобразовать MKMapPoint в NSValue. В Objective-C я могу сделать это со следующим утверждением:

MKMapPoint point = MKMapPointForCoordinate(location.coordinate); NSValue *pointValue = [NSValue value:&point withObjCType:@encode(MKMapPoint)]; 

Как я могу это сделать в Swift? Благодаря!

Это невозможно в Swift, но вы все равно можете создать категорию в ObjC и использовать ее в своем проекте Swift

 @interface NSValue (MKMapPoint) + (NSValue *)valueWithMKMapPoint:(MKMapPoint)mapPoint; - (MKMapPoint)MKMapPointValue; @end @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(); 

К сожалению, в Swift это в настоящее время невозможно.

попробуй это

  let mapPoint = MKMapPointForCoordinate(coordinate) let type = NSValue(MKCoordinate: coordinate).objCType // <- THIS IS IT let value = NSValue(bytes: unsafeAddressOf(mapPoint as! AnyObject), objCType: type); 
  • Странный тип литья в Objective-c
  • Что означает двойная скобка?
  • Получение NSString из NSCFString
  • Давайте будем гением компьютера.