很多时候,在使用Automatic Reference Counting的是时候,会提示一些很陌生的的错误提示,特别是使用conver to arc后,
比如bridged cast
给你的c代码上面加个_bridged。
这里面有个详细的描述,
A bridged cast is a C-style cast annotated with one of three keywords:
-
(__bridge T) op casts the operand to the destination type T. If T is a retainable object pointer type, then op must have a non-retainable pointer type. If T is a non-retainable pointer type, then op must have a retainable object pointer type. Otherwise the cast is ill-formed. There is no transfer of ownership, and ARC inserts no retain operations.
-
(__bridge_retained T) op casts the operand, which must have retainable object pointer type, to the destination type, which must be a non-retainable pointer type. ARC retains the value, subject to the usual optimizations on local values, and the recipient is responsible for balancing that +1.
-
(__bridge_transfer T) op casts the operand, which must have non-retainable pointer type, to the destination type, which must be a retainable object pointer type. ARC will release the value at the end of the enclosing full-expression, subject to the usual optimizations on local values.
These casts are required in order to transfer objects in and out of ARC control; see the rationale in the section on conversion of retainable object pointers.
Using a __bridge_retained or __bridge_transfer cast purely to convince ARC to emit an unbalanced retain or release, respectively, is poor form.
其实,你在apple llvm 的提示下面应该就能看到一些消息的描述,主要是说retain,这里面的bridge有unretained 和retained两种,说到这里面大家应该知道retain的含义了。
先写到这。
其实在这里面,跟多的是一些警告,让我决定很烦。
比如隐式转换,和显示转换。
分享到:
相关推荐
在本主题中,我们将深入探讨如何使用C语言来实现ARC圆弧插补计算。C语言由于其高效、灵活和广泛的应用,是编写这种底层控制程序的理想选择。 首先,圆弧插补的基本概念是将一个完整的圆弧分割成若干小线段,然后...
4. **EXAMPLES.ARC**:顾名思义,这是一个包含示例代码的压缩文件,初学者可以通过阅读和运行这些例子来学习C语言的各种语法和编程技巧。 5. **MATHERR.C, GETOPT.C, SSIGNAL.C**:这些都是C语言的源代码文件,分别...
整体源码共计250个文件,其中包含54个PNG图片文件、22个头文件、22个数据文件、22个Python脚本文件、20个C语言头文件、15个mkdir_done文件、13个Python编译文件、11个C语言源文件、8个批处理文件、8个项目文件以及...
尽管ARC会自动管理大部分内存,但在某些情况下,比如在异步操作或者某些特殊框架中,仍然需要使用AutoreleasePool来管理临时对象的生命周期。 12. ARC与Auto Release Pool的关系: 开发者可以使用ARC来管理...
9. 数字时钟处理模块:该模块允许用户修改当前时间,通过按Tab键定位需要修改内容的位置,然后通过按光标上移(↑)或下移(↓)键来修改当前时间。 10. bioskey()函数:该函数是一个键盘接口函数,用于获取用户的...
标题中的"tc20 学习c语言必备"暗示了这是一个关于使用TC(Turbo C)2.0版本学习C语言的资源集合。Turbo C是Borland公司推出的一款经典的C编译器,尤其在早期的个人计算机编程教育中非常流行。这个压缩包可能包含了...
这篇文档将深入探讨这两种模式以及它们在实际项目中的应用,并通过SingletonTemplate这个xcode工程中的实例来阐述宏定义和使用。 首先,让我们理解什么是ARC。ARC是Xcode 4.2引入的一个特性,它自动跟踪对象的生命...
本文将深入探讨如何在Visual Studio 2013环境下,使用C语言结合easyX图形库来实现一个电子相册。easyX是一个为简化C语言图形编程而设计的库,它提供了一系列简便的函数,使得开发者可以轻松地在Windows平台上进行...
在C语言中使用SDL可以创建复杂的2D和3D图形,它提供了丰富的API,如`SDL_Init()`,`SDL_CreateWindow()`,`SDL_Renderer`和`SDL_Texture`等,来管理窗口和渲染图形。 - **Allegro** 是一个专为游戏开发设计的库,...
-通过本手册的学习,用户能够熟练掌握ArcHydro的基本安装步骤及主要工具的使用方法。 -确保用户能够有效地利用ArcHydro进行水文学分析和GIS数据管理。 #### 三、软件需求 ##### 3.1 ArcView环境下使用ArcHydro的...
"arc_conv_r55"是一款专门用于处理特定格式的压缩包的解包工具。这个工具集成了多种功能,包括解包、打包、转换以及清理,旨在帮助用户方便地管理和操作这类压缩文件。以下是对各部分的详细解释: 1. **build.bat**...
在Visual Studio 2008中使用C语言实现ARC4加密算法,开发者需要理解上述算法原理,并将其转化为C语言代码。这包括创建状态数组S,实现密钥设置和密钥流生成的过程,以及加密和解密函数。开发过程中,需要注意内存...
然而,通过特定的工具,比如"PKXARC",仍然可以对ARC文件进行解压缩。 "PKXARC"是一个专门用于处理ARC文件的工具,它允许用户打开、查看和提取ARC压缩包中的内容。这个程序的使用至关重要,因为没有它,那些包含ARC...
《ARCv2 ISA程序员参考公共版手册》是针对ARC EM处理器的一份详细指南,由Synopsys公司出版。这份文档旨在帮助那些使用ARCv2指令集架构(ISA)的程序员理解和编程。ARCv2 ISA是一种包含基本功能集合以及一系列可选...
《C语言基本作图函数使用详解》 C语言虽然本身并不直接支持图形界面,但通过扩展库,如Borland的Graphics.H库,我们可以利用C语言进行简单的图形绘制。华中科技大学的C语言课程深入讲解了如何利用这些图形函数进行...
问题描述:在使用 ArcEngine10.0+VS2010 开发环境下,出现“未能加载文件或程序集…”错误,且试图加载格式不正确的程序。 原因分析:该问题是由于 VS2010 在构建 .Net Framework 3.5, 3.0 or 2.0 on x64 machine ...
开发者可通过设置编译选项或使用toll-free bridging来解决这一问题。 ### 升级到ARC 对于从非ARC项目升级到ARC的开发者,文档提供了详细的指导,包括如何逐步转换代码库,以及在转换过程中可能遇到的问题及其解决...
在此次课程设计中,遇到了一些问题,通过老师的指导和组员之间的协作,最后都解决了问题。要减少调试时间首先要害死程序写出来的语法错误少。 七、结论: 本课程设计通过C语言实现了电子时钟,掌握了利用C语言相关...