使用ARC能帮我们减轻不少内存管理方面的负担,尤其是对用惯了Java的程序员来说。但是像我这种Java基础本身就不牢固,做了两年的iOS已经习惯手动管理内存的半吊子,使用ARC还是经常碰壁。
最近碰到了CFObject和NSObject转换的问题,由于ARC不能管理Core Foundation Object的生命周期,所以在Core Foundation和ARC之间,我们需要使用到__bridge,__bridge_retained和__bridge_transfer三个转换关键字。
根据苹果官方的文档(https://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html):
__bridge只做类型转换,但是不修改对象(内存)管理权;
__bridge_retained(也可以使用CFBridgingRetain)将Objective-C的对象转换为Core Foundation的对象,同时将对象(内存)的管理权交给我们,后续需要使用CFRelease或者相关方法来释放对象;
__bridge_transfer(也可以使用CFBridgingRelease)将Core Foundation的对象转换为Objective-C的对象,同时将对象(内存)的管理权交给ARC。
from:
here
分享到:
相关推荐
OC-Cpp 1.在object-c++类中调用c++类 1)ViewController.m--->ViewController.mm 2)#import "OcCallCpp.h" 3)OcCallCpp.h引入C++类头文件,#include "MyCppClass.h" ...6)释放Oc对象,__bridge_transfer
1 前言 3 2 目的 3 3 ORACLE内存结构概述 3 4 常用参数说明 3 4.1 BUFFER_POOL_KEEP 4 4.2 CPU_COUNT 4 4.3 DB_BLOCK_BUFFERS 4 ...5.2.1 分类区(SORT_AREA_SIZE)与哈希区(HASH_AREA_SIZE) 11 6 参数设置实例 11
项目文件和源代码位于文件夹retained_undistort_image 。 源代码位于文件main.cpp 。 使用MS Visual Studio作为IDE,这需要一些(即OpenCVinclude / lib)才能生成代码。代码说明我们实现了两种方法来产生不失真的...
Title: Outlook 2003 SideBar V2.02 Alpha ...The author may have retained certain copyrights to this code...please observe their request and the law by reviewing all copyright conditions at the above URL.
Direct3D Retained Mode DLL
说明: 指定与 TO_CHAR 和 TO_DATE 函数一同使用的默认日期格式。该参数的默认值由 NLS_TERRITORY 确定。该参数的值可以是包含在双引号内的任何有效的日期格式掩码。例如: ''MMM/DD/YYYY''。 值范围: 任何有效的日期...
swapper_space is a fiction, retained to simplify the path through vmscan s shrink_page_list.
保留:大规模的活动和保留跟踪 使用Redis位图,可以轻松地按日,小时或分钟的间隔按比例跟踪活动和... 与实体一样,组由您提供给Retained的唯一标识符标识。 保留默认值 Retained的默认设置是在redis://localhost:63
****************************...** THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS PART OF THIS FILE AT ALL TIMES. *******************************************************************************
保留内含子新抗原管道 ... 该软件包的输出(此仓库中的ir $ flat文件,示例文件run_kma_example.R和kma_output_file_example.csv)将直接输入到该管道。 更改外壳程序脚本getNeoantigenBinders.sh中的路径(文件
使用 Memory Analyzer 来分析生产环境的 Java 堆转储文件,可以从数以百万计的对象中快速计算出对象的 Retained Size,查看是谁在阻止垃圾回收,并自动生成一个 Leak Suspect(内存泄露可疑点)报表。 Memory ...
The accessible approach of the book has been retained with each chapter designed to be self contained and the theory and applications of the subject carefully introduced where appropriate. The latest...
与通信有关的 % define the state variables. They will be retained to memory between % following runs. persistent state, state = xl_state(0,{xlUnsigned, 1, 0})
完整的MQTT V3.1/V3.1.1协议支持全面支持MQTT V3.1/V3.1.1协议规范QoS0/1/2消息发布与订阅支持Session管理和离线消息支持Last Will消息支持Retained消息支持TCP/SSL连接支持MQTT over WebSocket连接支持HTTP Publish...
完整的MQTT V3.1/V3.1.1协议支持全面支持MQTT V3.1/V3.1.1协议规范QoS0/1/2消息发布与订阅支持Session管理和离线消息支持Last Will消息支持Retained消息支持TCP/SSL连接支持MQTT over WebSocket连接支持HTTP Publish...
完整的MQTT V3.1/V3.1.1协议支持全面支持MQTT V3.1/V3.1.1协议规范QoS0/1/2消息发布与订阅支持Session管理和离线消息支持Last Will消息支持Retained消息支持TCP/SSL连接支持MQTT over WebSocket连接支持HTTP Publish...
完整的MQTT V3.1/V3.1.1协议支持全面支持MQTT V3.1/V3.1.1协议规范QoS0/1/2消息发布与订阅支持Session管理和离线消息支持Last Will消息支持Retained消息支持TCP/SSL连接支持MQTT over WebSocket连接支持HTTP Publish...
Mbed TLS is now maintained under open governance at TrustedFirmware.org. Head there for the ... The information on this website will be retained while we migrate but please note it may be out of date.
Effects of silicon (Si) content on the stability of retained austenite and temper embrittlement of ultrahigh strength steels were in-vestigated using X-ray diffraction (XRD),transmission electron ...