как хранить CGPoint в массиве - PullRequest
       2

как хранить CGPoint в массиве

6 голосов
/ 07 октября 2011

Привет, я пытаюсь сохранить точки перемещения в NSMutableArray, поэтому у меня есть попытки, подобные этой

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *move = [[event allTouches] anyObject];
    CGPoint MovePoint = [move locationInView:self.view];
if (MovePointsArray==NULL) {
        MovePointsArray=[[NSMutableArray alloc]init];
    }
    [MovePointsArray arrayWithObjects:[NSValue valueWithCGPoint:MovePoint]];
}

но это не работает, как я могу сохранить эти точки в NSMutableArray

Ответы [ 3 ]

17 голосов
/ 07 октября 2011

Вы должны использовать addObject: в последней строке:

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *move = [[event allTouches] anyObject];
    CGPoint MovePoint = [move locationInView:self.view];
if (MovePointsArray==NULL) {
        MovePointsArray=[[NSMutableArray alloc]init];
    }
    [MovePointsArray addObject:[NSValue valueWithCGPoint:MovePoint]];
}
2 голосов
/ 30 ноября 2012

Вы должны сделать так:

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *move = [[event allTouches] anyObject];
    CGPoint MovePoint = [move locationInView:self.view];

    if (MovePointsArray == NULL) {
        MovePointsArray = [[NSMutableArray arrayWithObjects:[NSValue valueWithCGPoint:MovePoint, nil];
    }
    else {
        [MovePointsArray addObject:[NSValue valueWithCGPoint:MovePoint]];
    }
}

не забудьте сохранить / восстановить массив, поскольку вы не видите, как использовать средство доступа к свойству.

Лучше всего, вы должны выделить / инициализировать массив в вашем методе init, а затем делать только здесь:

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *move = [[event allTouches] anyObject];
    CGPoint MovePoint = [move locationInView:self.view];

    [MovePointsArray addObject:[NSValue valueWithCGPoint:MovePoint]];
}
1 голос
/ 07 октября 2011

Если вы хотите получить массив, используя метод arrayWithObjects, вы также должны добавить nil в качестве последнего элемента массива.

вроде так:

[MovePointsArray arrayWithObjects:[NSValue valueWithCGPoint:MovePoint], nil];

но чтобы добавить объект в существующий массив, вы должны использовать addObject метод

[MovePointsArray addObject:[NSValue valueWithCGPoint:MovePoint]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...