Cry*_*tal 1 iphone automatic-ref-counting
我还是习惯了ARC和桥梁演员.我在关于CGColor的文档中看到了这一点
编译器处理从Cocoa方法返回的CF对象编译器理解返回Core Foundation类型的Objective-C方法遵循历史Cocoa命名约定(请参阅高级内存管理编程指南).例如,编译器知道,在iOS中,UIColor的CGColor方法返回的CGColor不归属.您仍必须使用适当的类型转换,如此示例所示:
NSMutableArray *colors = [NSMutableArray arrayWithObject:(id)[[UIColor darkGrayColor] CGColor]];
[colors addObject:(id)[[UIColor lightGrayColor] CGColor]];
Run Code Online (Sandbox Code Playgroud)
所以在我的代码中,我尝试了这个:
gradientLayer.backgroundColor = (id)([UIColor clearColor].CGColor));
Run Code Online (Sandbox Code Playgroud)
我收到了关于ARC的编译器警告,需要使用桥接转换.我还是不明白为什么.当我点击"Fix-It"时,它给了我这个:
gradientLayer.backgroundColor = (__bridge CGColorRef)((__bridge id)([UIColor clearColor].CGColor));
Run Code Online (Sandbox Code Playgroud)
哪个我不明白.这是什么意思?谢谢!
只要使用gradientLayer.backgroundColor = [UIColor clearColor].CGColor;的.CGColor已经是一个CGColorRef.你的最后一个代码是从a CGColorRef到a id和back 的演员.
| 归档时间: |
|
| 查看次数: |
1868 次 |
| 最近记录: |