Вернуть CGPoints из функции - PullRequest
       4

Вернуть CGPoints из функции

0 голосов
/ 18 февраля 2012

У меня есть еще один вопрос о прохождении CGPoint в соединениях:

(CGPoint[]) displayPoints:(CGPoint) startPoint 
                        withEnd:(CGPoint) endPoint
                 withBaseRotate:(Boolean) baseRotate {

// do some stuf with four or six points
// create a array of the points and return - it


    CGPoint ourPoints[] = {
        CGPointMake(point1.x, point1.y),
        CGPointMake(point2.x, point2.y),
        CGPointMake(point3.x, point3.y),
        //... some more points
    } ;

  return ourPoints[];
}

Почему это не работает?

1 Ответ

0 голосов
/ 25 июля 2012

Необходимо вернуть указатель на то место, где оно хранится в памяти.

(const CGPoint *) displayPoints:(CGPoint) startPoint 
                  withEnd:(CGPoint) endPoint
           withBaseRotate:(Boolean) baseRotate {

    CGPoint ourPoints[] = {
        CGPointMake(point1.x, point1.y),
        CGPointMake(point2.x, point2.y),
        CGPointMake(point3.x, point3.y),
        //... some more points
    } ;

  return ourPoints;
}

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

...