Convert MKMapPoint to NSValue in Swift

前端 未结 3 1914
星月不相逢
星月不相逢 2021-01-19 08:22

I want to convert an MKMapPoint to a NSValue. In Objective-C i can do it with the following statement:

MKMapPoint point = MKMapPointForCoordinate(location.co         


        
3条回答
  •  春和景丽
    2021-01-19 08:38

    It isn't possible in Swift, but you can still create a category in ObjC and use it in your Swift project

    // 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
    

    The usage in Swift:

    let mapValue = CGValue(MKMapPoint: )
    let mapPoint = mapValue.MKMapPointValue();
    

提交回复
热议问题