`
iaiai
  • 浏览: 2145345 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

IOS 自动释放池Autorelease pool

 
阅读更多
一、O-C当中的内存释放,并不是像java/.net那样有一个自动的释放池,开发人员不用去关心有关内存释放的问题,O-C里面的自动释放池比c语言的手动内存管理要好一些,但是相对于java/.net来说又弱一些,所以说O-C当中的释放属于半自动的释放池。

二、什么是自动释放池

  1、Autorelease pool

  自动释放池(Autorelease pool)是OC的一种内存自动回收机制,可以将一些临时变量通过自动释放池来回收统一释放

  自动释放池本事销毁的时候,池子里面所有的对象都会做一次release操作

  2、autorelease

  任何OC对象只要调用autorelease方法,就会把该对象放到离自己最近的自动释放池中(栈顶的释放池)。

三、如何创建一个自动释放池

//ios5.0新方式
@autoreleasepool{

}

//ios5.0之前的老方式
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc]init];

[pool release];


四、自动释放池如何释放对象内存

  黄金法则:如果对一个对象使用了alloc,[mutable]copy,retain,那么必须使用相应的release或者autorelease.

五、自动释放池栈式结构管理

自动释放池原理:

自动释放池的原理类似于一个数组的原理,我们每调用一个autorelease就会有个对象挂到内存中去,系统里面就会根据这个池子销毁的时候把池子里面的内容全部销毁。
  • 大小: 95.3 KB
分享到:
评论

相关推荐

    Node.js-mysql-autoRelease:node.js mysql事务自动释放连接

    Node.js-mysql-autoRelease node.js mysql transaction Auto Release connection\ 实现Node.js中连接池自动回收连接功能

    object-c基础教程

    大纲  开始吧 o 下载这篇教学 o 设定环境 o 前言 o 编译 hello world  创建 Classes ...o Autorelease Pool  Foundation Framework Classes o NSArray o NSDictionary  优点与缺点  更多信息

    iOS 5 ARC完全指南

    iOS 5 ARC完全指南中文 目录 ARC 完全指南 3 指针保持对象的生命 3 Xcode 的ARC 自动迁移 9 Xcode 的自动迁移工具 9 转换后的其它问题 14 禁止某些文件的ARC 14 ARC 自动迁移的常见问题 15 属性property 17 ...

    前端开源库-node-circleci-autorelease

    前端开源库-node-circleci-autorelease节点circleci autorelease,在circleci上创建释放标记

    ios开发小技巧

    iOS开发之UIlabel多行文字自动换行 (自动折行) UIView *footerView = [[UIView alloc]initWithFrame:CGRectMake(10, 100, 300, 180)]; UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 100, 300, ...

    IOS入门之HelloWorld源代码

    autorelease]; self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(320/2.0 - 140/2.0, 80, 140, 40)]; /...

    IOS高级内存管理编程指南.pdf

    介绍IOS内存管理的一本电子书,初学者可以很快的了解ios上的内存管理的机制,有一定经验的也可以从中得到新的收获。

    iOS多线程编程指南

    目录 多线程编程指南 ................................................................................................................................................ I 简介...............................

    ios开发记录

    //initWithNibName将控制器绑定xib的方法,如果xib的名称和控制器的类名称相同的时候,直接写init(会自动绑定同名的xib)就可以,如果xib的名称和类名称不同的话,必须手动调用此方法来进行绑定 ...

    autorelease-github:通过 GitHub API 为您的构建管道自动发布

    autorelease-github 通过 GitHub API 为您的构建管道自动发布 这是一个非常简单的项目,它需要 N 个文件并使用 bash、curl 和 jq 通过上传它们。 它旨在成为构建管道中的嵌入式发布构建。 输入是一堆文件和一个放...

    AutoReleasePoolTestExample:一个例子来说明在 ARC iOS 程序中使用 @autoreleasepool 的好处

    @autoreleasepool 的一个例子 一个例子来说明在 ARC iOS 程序中使用 @autoreleasepool 的好处 控制循环中的内存使用。 像这样: 见我的文章: :

    AutoReleaseTool:自动部署桌面应用程序的CICD工具

    自动发布工具 AutoReleaseTool有助于消除使用的更新和部署桌面应用程序新版本的手动过程。目录 使用新版本更新AssemblyInfo.cs AssemblyVerions。 b 切换到发布和构建。 使用之前的Nuget包打开NuGet包资源管理器更新...

    iOS本地推送简单实现代码

    本文为大家分解介绍了iOS本地推送代码的三步骤,供大家参考,具体内容如下 第一步:创建本地推送 // 创建一个本地推送 UILocalNotification *notification = [[[UILocalNotification alloc] init] autorelease]; /...

    iOS 开发中 NavigationController经常出现的问题原因分析

    MyViewController *sampleViewController = [[[MyViewController alloc]initWithXXX] autorelease]; [self.navigationController pushViewController: sampleViewController animated:true]; BUG:界面无反应 分析...

    详解iOS应用开发中的ARC内存管理方式

    ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain、release、autorelease语句。你不再需要担心内存管理,因为编译器为你处理了一切 注意:ARC 是编译器特性,...

    有时侯我们需要延迟一个对象的引用计算减一操作

    我们需要先创建一个auto release pool,才能有效地实现autorelease机制,否则会导致内存泄露。当一个对象obj发送autorelease消息时,会发生如下过程:

    Auto Release Sh*t-crx插件

    语言:中文 (简体) 自动生成发版申请 它根据地址自动生成发版申请单,故名:auto-release-sh*t

    Objective C Memory Management Essentials(PACKT,2015)

    Objective-C Memory Management Essentials will familiarize you with the basic principles of Objective-C memory management, to create robust and effective iOS applications. You will begin with a basic ...

    Programming in Objective-C 4th Edition

    Object References and the Autorelease Pool 403 The Event Loop and Memory Allocation 405 Summary of Manual Memory Management Rules 407 Automatic Reference Counting (ARC) 408 Strong Variables 408 Weak ...

    WhiteRaccoon:适用于iOS的FTP客户端

    一般注意事项您可以使用WhiteRaccoon通过以下两种方式之一与FTP服务器进行交互:发出...使用简单下载文件 - download { //we don't autorelease the object so that it will be around when the callback gets called

Global site tag (gtag.js) - Google Analytics