设置 CAShapeLayer 的线帽

Setting the line cap of a CAShapeLayer

当我尝试 运行 一行代码时弹出一个非常奇怪的错误。

我有一个 CAShapeLayer 的子类,我正在尝试在其上设置线帽样式。我想使用圆帽样式,但是当我添加此代码时:

[self setLineCap: kCGLineCapRound];

构建失败,我收到此错误和警告:

Implicit conversion of 'int' to 'NSString *' is disallowed with ARC

Incompatible integer to pointer conversion sending 'int' to parameter of type 'NSString *'

但是如果我添加这个:

[self setLineCap: kCGLineCapButt];

构建得很好。为什么它打破了另一种线帽类型?这是 Quartz 的 problem/bug 吗?


相关信息。

CAShapeLayer 使用 kCALineCap***,它是 CAShapeLayer.h 文件中定义的常量字符串,而不是作为枚举一部分的 kCGLineCap***。