__bridge

在ARC中,使用到和c语言对应的数据类型,应该使用__bridge 桥接

在MRC中,不需要桥接

在OC中,如果是ARC的话,编译的时候会自动添加 retain、release、autorelease

ARC只负责OC的代码,不负责c的代码

如果c语言的框架 中,函数名中出现create、retain、copy,需要release

桥接的目的就是解决上述问题

时间: 2024-08-05 06:57:00

__bridge的相关文章

浅解ARC中的 __bridge、__bridge_retained和__bridge_transfer

文章来源:http://www.outflush.com/2015/03/introduction-of-arc-bridge-type-transfer/ 在对 bridge 相关的修饰符解说前.首先了解下面内容 Core Foundation 是一组C语言接口.它与Foundation为相同功能提供接口.仅仅是Foundation框架提供的是Objective-C接口. Core Foundation中的对象也存在引用计数的概念,相似于Foundation的retain/release,其相

__bridge,__bridge_transfer和__bridge_retained的使用和区别【转载】

Core Foundation 框架Core Foundation框架 (CoreFoundation.framework) 是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能.下面列举该框架支持进行管理的数据以及可提供的服务: 群体数据类型 (数组.集合等)程序包字符串管理日期和时间管理原始数据块管理偏好管理URL及数据流操作线程和RunLoop端口和soket通讯Core Foundation框架和Foundation框架紧密相关,它们为相同功能提供接口,但Foundation

__bridge之谜转自(http://www.cnblogs.com/goodleixiao/articles/2517911.html)

__bridge只做类型转换,但是不修改对象(内存)管理权: __bridge_retained(也可以使用CFBridgingRetain)将Objective-C的对象转换为Core Foundation的对象,同时将对象(内存)的管理权交给我们,后续需要使用CFRelease或者相关方法来释放对象: __bridge_transfer(也可以使用CFBridgingRelease)将Core Foundation的对象转换为Objective-C的对象,同时将对象(内存)的管理权交给ARC

__bridge_retained/__bridge_transfer/__bridge使用详解

第一.__bridge_retained的使用 __bridge_retained转换可使要转换的变量也持有所赋值的对象 void *p=0; { id obj=[[NSObject alloc] init]; p=(__bridge_retained void*)obj; } NSLog(@"class=%@",[(__bridge id)p class]); 输出结果: class=NSObject 分析: 变量作用域结束后,虽然obj失效,__bridge_retained转换使

关于block以及__bridge的一些笔记

问题概要 _block是否是一个OC对象? __bridge相关. _block是否是一个OC对象? 结论 一般来说,block可以看做一个OC对象,但是在编译器底层,block又可以被细分为block对象,独立于OC对象的存在. 分析 根据苹果官方文档,明确的指明block是一个OC对象.有兴趣的在文档里面搜索Working with Blocks. 根据文档Clang 4.0 documentation里面描述的,这里引入一个概念--可保留对象指针(retainable object poi

__bridge,__bridge_transfer和__bridge_retained详解

Core Foundation 框架Core Foundation框架 (CoreFoundation.framework) 是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能.下面列举该框架支持进行管理的数据以及可提供的服务: 群体数据类型 (数组.集合等)程序包字符串管理日期和时间管理原始数据块管理偏好管理URL及数据流操作线程和RunLoop端口和soket通讯Core Foundation框架和Foundation框架紧密相关,它们为相同功能提供接口,但Foundation

expected expression __bridge

expected expression 一般为 标点符号引起的警告 () 或{} // 使用 core foundation 框架,ARC环境下需要:(__bridge NSString*) 修饰或(__bridge id)修饰 NSString * s = (id) (__bridge NSString*)kSecAttrAccount; [wrapper setObject:@"<账号>" forKey:(__bridge id)kSecAttrAccount ]; e

iOS开发之__bridge,__bridge_transfer和__bridge_retained

本文转至:http://www.qingpingshan.com/rjbc/ios/157477.html 引言 Core Foundation框架 (CoreFoundation.framework) 是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能.下面列举该框架支持进行管理的数据以及可提供的服务: 1.群体数据类型 (数组.集合等) 2.程序包 3.字符串管理 4.日期和时间管理 5.原始数据块管理 6.偏好管理 7.URL及数据流操作 8.线程和RunLoop 9.端口和

IOS开发之 __bridge __bridge_transfer和__bridge_retained

Core Foundation 框架 Core Foundation框架 (CoreFoundation.framework) 是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能.下面列举该框架支持进行管理的数据以及可提供的服务: 群体数据类型 (数组.集合等) 程序包 字符串管理 日期和时间管理 原始数据块管理 偏好管理 URL及数据流操作 线程和RunLoop 端口和soket通讯 Core Foundation框架和Foundation框架紧密相关,它们为相同功能提供接口,但