为什么这个演员不需要ARC下的桥接?

Ine*_*ept 5 ios automatic-ref-counting

为什么将CGImageRef转换为对象指针不需要内存管理信息(__bridge等)?例如,如果image的类型为UIImage*,而layer是UIView的底层,则以下代码行不会引起编译器的任何抱怨:

layer.content = (id)[image CGImage];
Run Code Online (Sandbox Code Playgroud)

Cod*_*aFi 6

引用转换到ARC发行说明:

编译器处理从Cocoa方法返回的CF对象

编译器理解返回Core Foundation类型的Objective-C方法遵循历史Cocoa命名约定(请参阅高级内存管理编程指南).例如,编译器知道,在iOS中,UIColor的CGColor方法返回的CGColor不归属.您仍必须使用适当的类型转换,如此示例所示......

(好吧,不是可可触摸,但是嘿!).

因为CGImage返回CoreFoundation对象,所以不需要强制转换__bridge.