如何使用Objective C返回一个CGPoints数组

时间:2017-09-03 01:06:33

标签: objective-c swift

我的项目中有一个名为 doWorkOnSampleBuffer 的函数,它返回一个CGPoint值。

- (CGPoint)doWorkOnSampleBuffer:(CMSampleBufferRef)sampleBuffer inRects:(NSArray<NSValue *> *)rects {

    CGPoint mypoint[2];

    mypoint[0] = CGPointMake(-1, -1);
    mypoint[1] = CGPointMake(5, 5);

    return mypoint[1]
}

此函数在另一个swift文件中调用,如下所示:

var myPoint = wrapper?.doWork(on: sampleBuffer, inRects: boundsArray)

现在,我想让 doWorkOnSampleBuffer 函数返回CGPoint数组&#34; mypoint &#34;,而不只是一个CGPoint值。

那么,我如何调整我的代码呢?

1 个答案:

答案 0 :(得分:1)

解决!

答案是:

- (NSArray<NSValue *> *)doWorkOnSampleBuffer:(CMSampleBufferRef)sampleBuffer inRects:(NSArray<NSValue *> *)rects {

    CGPoint mypoint[2];

    mypoint[0] = CGPointMake(-1, -1);
    mypoint[1] = CGPointMake(5, 5);

    NSArray *myCGPointArray = @[[NSValue valueWithCGPoint:mypoint[0]],[NSValue valueWithCGPoint:mypoint[1]]];

    return myCGPointArray;
}

现在,如果您将此功能称为:

var myPoint = wrapper?.doWork(on: sampleBuffer, inRects: boundsArray)

因此您可以按如下方式访问值:

myPoint![0].cgPointValue.x
myPoint![0].cgPointValue.y
myPoint![1].cgPointValue.x
myPoint![1].cgPointValue.y