删除 UIColor CGColor - KVC 警告
Posted
技术标签:
【中文标题】删除 UIColor CGColor - KVC 警告【英文标题】:Remove UIColor CGColor - KVC warning 【发布时间】:2012-11-27 11:50:14 【问题描述】:如何去除[[UIColor grayColor] CGColor]
愚蠢的警告?
[self setValue:
[[UIColor grayColor] CGColor]
forKeyPath:[NSString stringWithFormat:@"_View_%@%d.layer.borderColor",
i>=10?@"":@"0", i]];
不兼容的指针类型发送“CGColorRef”(又名“结构 CGColor *') 到 'id' 类型的参数
谢谢。
【问题讨论】:
-1 无评论。你是个很酷的人! +1 评论:第一次搜索回答了我的问题 :-)= 【参考方案1】:将 CGColor 转换为 id 类型:
[self setValue:
(id)[[UIColor grayColor] CGColor]
forKeyPath:[NSString stringWithFormat:@"_View_%@%d.layer.borderColor",
i>=10?@"":@"0", i]];
【讨论】:
有效,但这很奇怪,因为如果我使用id color = [[UIColor grayColor] CGColor];
警告保持不变...
投它(如他所说)::问题是 CGColorRef 不是真正的 NSObject,因此不兼容(例如,与 arc。它不知道保留/释放/isEqual ...)-对于接受知道这一点的方法,这不是问题,所以上面的代码是保存【参考方案2】:
这将与上面的代码执行相同的操作。
[self setValue:
(id)[[UIColor grayColor] CGColor]
forKeyPath:[NSString stringWithFormat:@"_View_%02d.layer.borderColor", i]];
【讨论】:
以上是关于删除 UIColor CGColor - KVC 警告的主要内容,如果未能解决你的问题,请参考以下文章
iOS开发UIColor,CGColor,CIColor三者的区别和联系
错误sintax UIColor(CGColor:selectedButton?.layer.backgroundColor)Swift