Хранение и получение CGPoints внутри NSMutableArray

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

Я пытаюсь сохранить массив 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 ответа

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

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

[ArrObj addObject:NSStringFromCGPoint(PointObj)];

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

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

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

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

points = [[NSMutableArray alloc] init];

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

Другие вопросы по тегам