设置CAShapeLayer的行上限

时间:2015-02-16 20:30:33

标签: ios objective-c quartz-graphics

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

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

[self setLineCap: kCGLineCapRound];

构建失败,我收到此错误并发出警告:

  

ARC

不允许将'int'隐式转换为'NSString *'      

不兼容的整数到指针转换将'int'发送到'NSString *'

类型的参数

但如果我加上这个:

[self setLineCap: kCGLineCapButt];

它构建得很好。为什么打破其他线帽类型?这是Quartz的问题/错误吗?


相关信息。

  • iOS SDK 8.1
  • Xcode 6.1.1
  • 部署目标iOS 7.0

1 个答案:

答案 0 :(得分:2)

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