1

特に次のパフォーマンスに関して違いはありますか。

アプローチ 1 - NULL 変換を使用します。

- (CGPathRef)createPathForRect:(CGRect)rect
{
    CGMutablePathRef path = CGPathCreateMutable();
    CGPathMoveToPoint(path, NULL, rect.size.width / 2, rect.size.height - 1);
    CGPathAddLineToPoint(path, NULL, (rect.size.width / 2) - 20, rect.size.height - 22);
    CGPathAddLineToPoint(path, NULL, 0, rect.size.height - 22);
    CGPathAddLineToPoint(path, NULL, 0, 0);
    CGPathAddLineToPoint(path, NULL, rect.size.width - 1, 0);
    CGPathAddLineToPoint(path, NULL, rect.size.width - 1, rect.size.height - 22);
    CGPathAddLineToPoint(path, NULL, (rect.size.width / 2) + 20, rect.size.height - 22);
    CGPathCloseSubpath(path);
    return path;
}

アプローチ 2 - 恒等変換を使用します。

- (CGPathRef)createPathForRect:(CGRect)rect
{
    CGAffineTransform transform = CGAffineTransformIdentity;
    CGMutablePathRef path = CGPathCreateMutable();
    CGPathMoveToPoint(path, &transform, rect.size.width / 2, rect.size.height - 1);
    CGPathAddLineToPoint(path, &transform, (rect.size.width / 2) - 20, rect.size.height - 22);
    CGPathAddLineToPoint(path, &transform, 0, rect.size.height - 22);
    CGPathAddLineToPoint(path, &transform, 0, 0);
    CGPathAddLineToPoint(path, &transform, rect.size.width - 1, 0);
    CGPathAddLineToPoint(path, &transform, rect.size.width - 1, rect.size.height - 22);
    CGPathAddLineToPoint(path, &transform, (rect.size.width / 2) + 20, rect.size.height - 22);
    CGPathCloseSubpath(path);
    return path;
}

まったく同じだと思いますが、これを確認したかったのです。

4

1 に答える 1