Objective c objc结构数组到swift数组

Objective c objc结构数组到swift数组,objective-c,swift,Objective C,Swift,如何将此数组强制转换为swift[CGPoint]?您可以使用以下方法强制转换它 -(CGPoint*)func { CGPoint* result = calloc(2, sizeof(CGPoint)); result[0] = ..; result[1] = ..; return result; } 然后在快速方面: - (CGPoint*)pointArray:(NSInteger *)length { int arrSize = 2;

如何将此数组强制转换为swift[CGPoint]?

您可以使用以下方法强制转换它

-(CGPoint*)func
{
    CGPoint* result = calloc(2, sizeof(CGPoint));
    result[0] = ..;
    result[1] = ..;

    return result;
}
然后在快速方面:

- (CGPoint*)pointArray:(NSInteger *)length
{
    int arrSize = 2;
    CGPoint* result = calloc(arrSize, sizeof(CGPoint));
    result[0] = ...
    result[1] = ...

    *length = arrSize;

    return result;
}
var数组长度:Int=0
让指针:unsafemeutablepointer=yourInstance.pointArray(&arrayLength)
设swiftArray=Array(UnsafeBufferPointer(开始:指针,计数:arrayLength))
自由(指针)

如何找到数组的长度?它是一个动态分配的数组,您无法获得数组的长度。将长度作为func()函数的参数传递。
- (CGPoint*)pointArray:(NSInteger *)length
{
    int arrSize = 2;
    CGPoint* result = calloc(arrSize, sizeof(CGPoint));
    result[0] = ...
    result[1] = ...

    *length = arrSize;

    return result;
}
    var arrayLength: Int = 0
    let pointer: UnsafeMutablePointer<CGPoint> = yourInstance.pointArray(&arrayLength)

    let swiftArray = Array(UnsafeBufferPointer(start: pointer, count: arrayLength))

    free(pointer)