对__bridge_transfer的理解

来源:互联网 发布:淘宝7z破解 编辑:程序博客网 时间:2024/05/30 22:47
__bridge_transfer:释放对象转给(transfer)ARC处理。
__bridge_transfer 的主语是CF对象: CF对象 transfer 内存的管理权给ARC。

         CF对象未用__bridge_transfer转为NS对象,则这个CF对象需要程序员用CFRelease来手工释放。
转换后就转由ARC来自动处理了。

不用__bridge_transfer时:
//valueCF对象是copy出来的,需要release。
CFStringRef valueCF =CFPreferencesCopyAppValue(CFSTR("1"),CFSTR("2"));   
NSString *value = (__bridge NSString *)valueCF;    
CFRelease(valueCF);     

用__bridge_transfer时:
NSString *value = (__bridge_transfer NSString*)CFPreferencesCopyAppValue(CFSTR("1"),CFSTR("2"));    

原创粉丝点击