Objective c objc结构数组到swift数组
如何将此数组强制转换为swift[CGPoint]?您可以使用以下方法强制转换它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;
-(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)