MRC与ARC混合开发配置

iOS4.1后,默认为ARC模式,ARC实质上通过编译器特性实现的,只需简单修改下文件配置即可实现.

1.要切换至MRC需要选中当前Project,选择Build Settings,查询框内键入auto,查找到Objective-C Automatic Reference Counting ,将YES选成NO即可.见下图:

2.还可以灵活选择单一或几个文件设置成ARC模式,方法是选择targets,找到Compile Sources,选择所需文件,将flags ,键入-fobjc-arc即可.见下图:

3.还可以灵活选择单一或几个文件设置成MRC模式,方法是选择targets,找到Compile Sources,选择所需文件,将flags ,键入-fno-objc-arc即可.见下图:

内存管理原则:

1)谁创建(alloc,new),谁release或者autorelease;

2)谁retain,mutableCopy(copy),谁release或autorelease;

MRC:手动内存管理

出现新对象时,手动添加release或autorelease.

ARC工作原理:

ARC是Objective-C编译器的特性,而不是运行时特性或者垃圾回收机制,ARC所做的只不过是在代码编译时为你自动在合适的位置插入release或autorelease。

ARC的判断准则:

只要还有一个强指针变量指向对象,对象就会保持在内存中。

只要没有强指针指向对象,对象就会被释放。

注意:当使用ARC的时候,暂时忘记“引用计数器”,因为判断标准变了

时间: 2024-10-11 16:40:50

MRC与ARC混合开发配置的相关文章

MRC和ARC混合开发

有三种方法! 方法一:使用xcode自带转换功能  将MRC文件转换成ARC 方法二:设置标识,告诉编译器   哪个类应该用MRC模式 方法三:当MRC的类比较多的时候 上百个的时候 ,就打包成静态库

Cordova配置与WebApp混合开发环境配置

好久都没来更新随笔了,这阵子比较忙,不过还是在不断的学习当中,今天给大家分享一下Cordova的配置与搭建WebApp混合开发环境的配置. 准备好了吗?让我们一步步来咯!!! 1.配置JDK环境 用的是1.8的版本,网上很多地方可以下载,这里就不上链接了 下载安装好后再本地配置sdk环境变量,如图,点击桌面(计算机)->右键属性->高级系统设置->系统属性面板高级->点击环境变量->在下面框中的系统变量中新建 配置以下三个变量,不清楚的建议去百度jdk环境变量设置,百度上讲的

Cocos2d-x 3.x 全平台新手开发配置教程

本文为Cocos2d-x 3.x 全平台(Android,iOS)新手开发配置教程攻略,希望对大家有所帮助.因为这篇文章是面对新手的.所以有些地方会啰嗦一些,请勿见怪.如果教程中有错误,欢迎指正.如果在配置开发平台时还遇到问题,欢迎大家讨论. 本文所使用的环境是PC(Win7),HTC G18,MacBook Air 以及 Mini iPad. 一.通用准备工作 1.安装Cocos2d-x 3.1 在Cocos2d官网上下载Cocos2d-x 3.1引擎,下载后解压缩. 2.安装Eclipse与

iOS-旧项目中手动内存管理(MRC)转ARC

在ARC之前,iOS内存管理无论对资深级还是菜鸟级开发者来说都是一件很头疼的事.我参 加过几个使用手动内存管理的项目,印象最深刻的是一个地图类应用,由于应用本身就非常耗内存,当时为了解决内存泄露问题,每周都安排有人值班用 Instruments挨个跑功能,关键是每次都总能检查出来不少.其实不管是菜鸟级还是资深级开发者都避免不了写出内存泄露的代码,规则大家都懂,可是 天知道什么时候手一抖就少写了个release? 好在项目决定转成ARC了,下面将自己转换的过程和中间遇到的问题写出来和大家共享,希望

iOS之mrc转arc

一.前言 项目简介 需要转换的Objective-C文件数量:1000个左右. 开发工具:Xcode 8.0.1 转换方式 我使用的是Xcode本身提供的ARC转换功能.当然你也可以手动手动转换,那不属于本文范畴,而且其工作量绝对能让你崩溃. 二.转换过程 代码备份 在进行如此大规模的更改之前,一定要先进行代码备份:直接在本地将代码复制一份,或者记住更改前代码在VCS上的版本号. 过滤无需转换的文件 找出项目中引用的仍使用手动内存管理的第三方库,或者某些你不希望转换的文件,对其添加-fno-ob

iOS之MRC和ARC

1.栈放局部变量(代码结束就释放,系统自动回收)堆放对象(动态分配) 2.每个对象里分配4个字节的存储空间放 引用计数器 当引用计数器值为0时对象占用的内存自动被回收自动回收,引用计数器的初始值是1. 3.retain 引用计数器+1   release引用计数器-1 4.可以给对象发送(调用)retainCount来接收当前的引用计数器的值 5.重写dealloc(对象遗言)来判断是否回收对象内存,都要调用 [super dealloc](写在方法最后) 6.使用alloc new copy

混合开发模式下主流移动开发平台分析

关键字:AppCan 移动开发平台 移动应用 Hybrid App在过去的两年中已经成为移动界的核心话题,但是作为一名Web开发者来说要如何站在移动互联网的浪潮之巅呢?是选择学习原生开发,研究Java.Object-C.C#等语言,还是选择继续使用网页开发,容忍HTML5功能的局限性?就在开发者左右为难的情况下Hybrid App作为一个折中的解决方案诞生了.那么究竟什么才是Hybrid App呢?HybridApp概念Hybrid App:Hybrid App is a mobile appl

OC与JS混合开发

随着iOS开发的成本增大,越来越多的公司开始使用html5混合开发软件了,因为使用原生的开发花费的成本跟时间都很大,而使用html5来搭建界面会方便很多,效率相对而言也提高了.虽然使用UIWebView实现的交互效果与原生效果相比还是会大打折扣,这类界面通常没有复杂的交互效果,所以现在主流应用大多采用混合开发.花了几天时间,把JS的基础全部看了一遍,又研究了一下巧神的书,写了一个iOS7以前的JS与OC混合开发的demo. 既然是html5页面搭建的布局,那么肯定是得有html5页面的,所以首先

WebRTC原生开发和混合开发优缺点分析对比

WebRTC的出现,让企业快速开发出一个支持全平台的音视频程序成为可能.在WebRTC之前,企业想要开发出一个全平台的音视频程序,难度,工作量非常大.使用WebRTC后,音视频程序中一些通用的模块比如音视频采集,播放模块,rtp,rtcp协议模块,都可以直接复用WebRTC现成的,不用自己再重复造轮子.这些模块开发难度不是很大,但是工作量非常大.使用WebRTC后,企业可以专注于优化流程,解决bug,实现业务需求. 目前,开发WebRTC程序有两种途径 原生开发,自己下载WebRTC代码,每个平