Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何使用NSPointArray?_Objective C_Cocoa_Nsbezierpath - Fatal编程技术网

Objective c 如何使用NSPointArray?

Objective c 如何使用NSPointArray?,objective-c,cocoa,nsbezierpath,Objective C,Cocoa,Nsbezierpath,因此,我想在NSBezierPath中使用方法appendBezierPathWithPoints:count:。但该方法要求我使用NSPointArray。这部纪录片并没有太多关于它的内容,我所能得到的只是它是一系列的N点,我不知道如何做到这一点。我认为它使用了c数组机制,但我不确定 谢谢。是的,您需要一个C样式的点数组来传递给appendBezierPathWithPoints:count:。例如,您可以执行以下操作: NSPoint pointArray[3]; pointArray[0

因此,我想在NSBezierPath中使用方法
appendBezierPathWithPoints:count:
。但该方法要求我使用NSPointArray。这部纪录片并没有太多关于它的内容,我所能得到的只是它是一系列的N点,我不知道如何做到这一点。我认为它使用了c数组机制,但我不确定


谢谢。

是的,您需要一个C样式的点数组来传递给
appendBezierPathWithPoints:count:
。例如,您可以执行以下操作:

NSPoint pointArray[3];

pointArray[0] = NSMakePoint(0, 0);
pointArray[1] = NSMakePoint(0.5, 0.25);
pointArray[2] = NSMakePoint(1, 1);

[lines appendBezierPathWithPoints:pointArray count:3];
其中,
line
NSBezierPath
的一个实例


在更复杂的情况下,您将使用数量可变的点,例如。

如果您想使用Objective-C样式的数组,则必须使用NSValue类

NSMutableArray *array = [NSMutableArray array];

CGPoint myPoint;
myPoint.x = 100;
myPoint.y = 200;

[array addObject:[NSValue valueWithPoint:myPoint]];
要从阵列检索回NSPoint,请执行以下操作:

myPoint = [array[0] pointValue];
希望能有帮助