2011-01-17 4 views
2

У меня есть объект CGMutablePathRef называемого путь, я хочу знать, как я могу знать путь имеет нулевое значение, это означает, что я не использовалкак проверить CGMutablePathRef является нулевой или не

CGPathAddLineToPoint(path, NULL, point.x, point.y); 

или

CGPathMoveToPoint(path, NULL, startPoint.x, startPoint.y); 

для ввода точек в пути.

ответ

2

Чтобы проверить, является ли NULL путь, используйте оператор в ==/!=.

if (path != NULL) 
    CGPathAddLineToPoint(path, NULL, point.x, point.y); 

Чтобы проверить, не содержит ли путь не ничего, используйте CGPathIsEmpty.

if (!CGPathIsEmpty(path)) 
    CGPathAddLineToPoint(path, NULL, point.x, point.y); 

Чтобы проверить, был ли перемещен точка пути, используйте CGPathGetCurrentPoint и сравнить с (0, 0).

if (!CGPointEqualToPoint(CGPathGetCurrentPoint(path), CGPointZero)) 
    CGPathAddLineToPoint(path, NULL, point.x, point.y); 

Конечно, это не может отличить действительно пустой путь и путь, который кто-то называется CGPathMoveToPoint(path, NULL, 0, 0) на нем.

(На самом деле, почему вы должны заботиться? Просто создать новый путь, если вы хотите пустой.)

0

в CGMutablePathRef является указателем, поэтому все, что вам нужно сделать, чтобы проверить это:

if (NULL != path) { 
    CGPathAddLineToPoint(path, NULL, point.x, point.y); 
} 
+0

но есть много способов, чтобы написать это. многие люди также выбирают 'if (path)', 'if (path! = NULL)' и 'if (0! = path)' - все они дают одинаковые результаты. – justin

Смежные вопросы