Как использовать NSPointArray? - PullRequest
5 голосов
/ 23 февраля 2011

Поэтому я хочу использовать метод appendBezierPathWithPoints:count: в NSBezierPath. Но метод требует, чтобы я использовал NSPointArray. Документальный фильм на самом деле мало говорит об этом, и все, что я мог получить об этом, это то, что это массив NSPoints, и я не уверен, как это сделать. Я думаю, что он использует механизм массива c, но я не уверен.

Спасибо.

Ответы [ 2 ]

8 голосов
/ 23 февраля 2011

Да, вам нужен массив точек в стиле 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];

, где lines - это экземпляр NSBezierPath.

В более сложном случае вы будете использовать переменное число точек, скажем.

2 голосов
/ 30 июля 2015

Если вы хотите использовать массив в стиле 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];

Надеюсь, это поможет.

...