Массивы структур или собственных типов данных в Objective C - PullRequest
1 голос
/ 16 апреля 2009

Я столкнулся с этой проблемой пару раз. В прошлый раз я хотел создать массив массивов (матриц) BOOL. В итоге я инкапсулировал их в NSStrings, потому что, очевидно, NSArray имеет только массивы объектов.

На этот раз снова хочу массив массивов, но с CGPoints. Я собираюсь использовать их для рисования изображений на экране. Есть ли способ создать массив CGPoints, не будучи объектами? Стоит ли даже беспокоиться о затратах памяти / производительности при наличии матрицы из 96 объектов?

1 Ответ

2 голосов
/ 16 апреля 2009

Я думаю, что 96 - это довольно небольшое число, и вам не нужно об этом слишком беспокоиться. Если вы используете CGPoints, вы можете использовать NSValue для переноса точек (вместо NSStrings), используя его метод [NSValue valueWithCGPoint:] на iPhone или [NSValue valueWithPoint:] в Mac OS X 10.5.

При этом довольно просто создать массив CGPoints, если вы знаете их заранее. Я говорил об этих опциях (для строк, а не для точек) здесь . В этом случае вы можете просто сделать 2D-массив в C следующим образом:

CGPoint myArray[32][3];

А затем используйте его как CGPoint onePoint = myArray[2][1];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...