【问题标题】:how to check CGMutablePathRef is null or not如何检查 CGMutablePathRef 是否为空
【发布时间】:2011-01-17 07:00:42
【问题描述】:

我有一个名为 path 的 CGMutablePathRef 对象,我想知道,我怎么知道 path 为空,这意味着我没有使用

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

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

将点推入路径。

【问题讨论】:

    标签: iphone ipad core-graphics


    【解决方案1】:

    要检查路径是否为 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) 的路径。

    (实际上,你为什么需要关心?如果你想要一个空路径,只需创建一个新路径。)

    【讨论】:

      【解决方案2】:

      CGMutablePathRef 是一个指针,所以你要做的就是测试它:

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

      【讨论】:

      • 但是有很多方法可以写这个。许多人还选择if (path)if (path != NULL)if (0 != path)——它们都产生相同的结果。
      猜你喜欢
      • 2017-11-15
      • 2020-05-29
      • 2018-04-02
      • 2016-04-05
      • 2018-01-08
      • 2020-09-25
      • 2012-01-15
      • 2016-07-16
      • 2021-08-14
      相关资源
      最近更新 更多