cfi*_*her 8 cocoa-touch objective-c calayer cgimageref automatic-ref-counting
以下代码可以通过手动内存管理进行编译,但在ARC下失败:
CALayer *layer = [CALayer layer];
layer.contents = [[UIImage imageNamed:@"dial.png"] CGImage];
Run Code Online (Sandbox Code Playgroud)
错误是:
自动引用计数问题:ARC不允许将非Objective-C指针类型'CGImageRef'(又名'struct CGImage*')隐式转换为'id'
如何使用ARC运行?
Nic*_*idt 18
CoreFoundation对象不由ARC管理.ARC仅适用于Objective-C对象,并且在从非对象指针类型转换(或转换)时不会隐式知道如何转移所有权.
您需要告诉ARC如何在演员阵容期间转移对象的所有权:
layer.contents = (__bridge id) [[UIImage imageNamed:@"dial.png"] CGImage];
Run Code Online (Sandbox Code Playgroud)