设置 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 吗?
相关信息。
- iOS SDK 8.1
- Xcode6.1.1
- 部署目标iOS7.0
CAShapeLayer 使用 kCALineCap***,它是 CAShapeLayer.h 文件中定义的常量字符串,而不是作为枚举一部分的 kCGLineCap***。
当我尝试 运行 一行代码时弹出一个非常奇怪的错误。
我有一个 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 吗?
相关信息。
- iOS SDK 8.1
- Xcode6.1.1
- 部署目标iOS7.0
CAShapeLayer 使用 kCALineCap***,它是 CAShapeLayer.h 文件中定义的常量字符串,而不是作为枚举一部分的 kCGLineCap***。