Хранение и получение CGPoints внутри NSMutableArray - PullRequest
4 голосов
/ 21 марта 2010

Я просмотрел бесчисленные вопросы здесь и в других местах и ​​не могу понять, что я делаю неправильно.

Я пытаюсь сохранить массив CGPoints как NSValues ​​внутри именованных точек NSMutableArray, как на iPhone:

NSValue *point = [NSValue valueWithCGPoint:firstTouch];
NSLog(@"NSValue *point = %@", point);
[points addObject:point];

NSLOG OUTPUT
NSValue *point = NSPoint: {120, 221}

Все идет гладко, конвертируя из CGPoint в NSValue. Но когда я пытаюсь восстановить точку, я ничего не получаю.

NSValue *getPoint = [points objectAtIndex:0];
CGPoint thePoint = [getPoint CGPointValue];
NSLog(@"Point = %@", NSStringFromCGPoint(thePoint));

NSLOG OUTPUT
Point = {0, 0}

Точки должны быть одинаковыми, но я получаю нулевой результат.

В целях тестирования это происходит в методе touchesBegan.

Кто-нибудь знает, где я иду не так? Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 21 марта 2010

Я никогда не выделял свой массив в память и не инициализировал его. Мои точки не были сохранены в массиве, потому что не было никакого существующего массива.

1 голос
/ 28 января 2014

для добавления CGPoint к NSMutableArray

[ArrObj addObject:NSStringFromCGPoint(PointObj)];

для получения CGPoint от NSMutableArray

CGPoint pointObj2 = CGPointFromString([ArrObj objectAtIndex:index]);

может ли это помочь вам ..

0 голосов
/ 02 февраля 2011

Сначала выделите ваш изменяемый массив в памяти:

points = [[NSMutableArray alloc] init];

Затем вставьте.

...