Xcode4.2中的release“不能”使用的理解

  Automatic Reference Counting (ARC),自动引用计数,是开发Cocoa程序时的一个编译级别的特性,用于自动内存管理。

  1:在XCode 4.2中,使用模板新建一个工程,该工程将”默认“选择使用ARC特性

  2:对于已经建立好的项目可以 选中项目, Building Settings, 然后找到 Objective C Automatic Reference Counting(找不到,可以搜索到), 设置改为No 就行了.

  ----ARC理论基础---

  ARC的工作原理是,在你编译程序时,将内存操作的代码(retain,release或autorelease)自动添加到需要的位置。即底层上使用和Manual Reference Counting(手工引用计数)一样的内存管理机制,但由于XCode自动帮你在编译时添加内存操作的代码,从而简化了编程的工作。

  启用ARC,编译选项中需加上-fobjc-arc,不过这个由XCode在创建工程模板时帮你完成。

  XCode 4.2以前版本都不支持ARC。

  对操作系统也有要求:Mac OS X v10.6或v10.7 (64-bit applications),iOS4或iOS5。注意:其中Mac OS X v10.6和iOS4不支持weak references(弱引用,后面会说明什么是weak references)。

  Xcode 4.2提供了一个名为“Convert to Objective-C Automatic Reference Counting”的工具,在Edit->Convert menu下,可以帮你自动将使用Manual Reference Counting的老代码转换成使用ARC的新代码(例如去掉对retain和release的调用)。

时间: 2024-10-07 01:05:51

Xcode4.2中的release“不能”使用的理解的相关文章

ios-Swiftw中怎么release UIAlertView?

问题描述 Swiftw中怎么release UIAlertView? OC中可以直接用,但Swift中好像没有这语法,查到一些说什么采用Deinit?一直半解的. 解决方案 没有强引用以后,就会自动释放了, Deinit 相当于 dealloc,释放前调用

installshield-installsheild 2008中的release Wizard步骤详解

问题描述 installsheild 2008中的release Wizard步骤详解 本人IT小白,最近在制作安装包,在installshield 2008中用Release Wizard生成exe这步有点困难, 还希望专业大牛分享一下关于这部分的操作详解..拜托了!! 解决方案 http://chorfung.blog.163.com/blog/static/1207120002010320104717707/

win7命令提示符中ipconfig /release不能运行

问题描述 win7命令提示符中ipconfig /release不能运行 在win7中用了管理员权限为什么ipconfig /release命令还是执行不了 解决方案 是提示没有权限,还是命令根本不存在

对imp中的fromuser参数的偏差理解

这两天执行导入dump文件时总碰到一个问题. 问题现象: 1. 执行:imp xyz/xxx file=test.dmp log=imp_test.log fromuser=test1 touser=test2 ignore=y commit=y buffer=300000000 feedback=10000 注:这个文件dump>200G容量. 2. 执行了许久,但最后结果和log中记录: Connected to: Oracle Database 10g Enterprise Edition

对java中递归问题的输出不理解,求大神解答!谢谢

问题描述 对java中递归问题的输出不理解,求大神解答!谢谢 对于这一段代码我能够理解,压栈然后出栈就是6,5,4 package recursion; public class testRecursion { public static void main(String[] args) { int num=3; recursion(num); } private static void recursion(int n){ n++; if(n<7){ recursion(n); System.o

java中下面这段代码怎么理解?

问题描述 java中下面这段代码怎么理解? class Connection { private static int count = 0; private int i = 0; private Connection() { System.out.println("Connection()");} // Allow creation via static method: static Connection makeConnection() { count++; return new C

对象-java源码中一个抽象类初始化方法中包含一个super(),该怎么理解

问题描述 java源码中一个抽象类初始化方法中包含一个super(),该怎么理解 package org.apache.http.params; import java.util.Set; /** * Abstract base class for parameter collections. * Type specific setters and getters are mapped to the abstract, * generic getters and setters. * * @si

C#中,用类定义类中的函数,不知道怎么理解?

问题描述 C#中,用类定义类中的函数,不知道怎么理解? using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Complex z1 = new Complex

c语言-c中这个定义的形参怎么理解,int型的什么呢

问题描述 c中这个定义的形参怎么理解,int型的什么呢 如果是在程序中那么int &a就是a的地址,但是他们属于形参怎么理解, 解决方案 int test(a,b,c)中的形参---------------------- 解决方案二: 实参是指向数据的真正地址的变量参数,形参只是一个副本或者是地址的副本. 一般情况下在调用函数的时候传递的是实参,在函数内部的参数是形参. 形参是为了让传递进来的数据可以被使用才有的. 解决方案三: 这是引用,不是地址.形参说的是函数中参数的名字,实参说的是调用者传