Хранение и получение 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];
Затем вставьте.