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

ios学习笔记之内存管理

    博客分类:
  • ios
阅读更多
一,内存管理类型定义
     1,基本类型  任何C的类型,eg:
     int,short,char,long,long long,struct,enum,union等属于基本类型或结构体
     内存管理对于C语言的基本类型无效
     2,OC类型(非基本类型)
     任何继承于NSObject类的对象都属于OC类型
     也就是除了C之外的其他类型

二,OC对象结构
     所有OC对象都有着一个计数器,保留着当前对象被引用的数量,如果计数器为0,那么就真正的释放这个对象。

三,alloc   retain  release 函数
     1, alloc函数是创建对象使用,创建完成后计数器为1(只用一次)
     retain是对一个对象的计数器+1 (可以多次调用)
     release是对一个对象计数器-1(减到0 对象就会从内存中释放)

     2,oc类中实现了引用计数器,对象知道当前被引用的次数。
     如果需要引用对象,可以给对象发送一个retain消息,这样对象计数器就+1;
     当不需要引用对象了,可以给对象发送release消息,这样对象计数器就-1;
     当计数器减到0,自动调用对象的dealloc函数,对象就会释放内存;
     计数器为0的对象不能再使用release和其他方法。

四,自动释放池
     自动释放池是OC的一种内存自动回收机制,可以将一些临时变量通过自动释放池来统一回收释放。
     当自动释放池本身销毁的时候,池子里面所有的对象都会做一次release操作。
     任何OC对象只要调用autorelease方法,就会把该对象放到离自己最近的自动释放池中(栈顶的释放池)。

五,不是用alloc,retain,copy创建的对象,不能使用release释放。
分享到:
评论

相关推荐

    IOS 学习笔记补充1

    "IOS学习笔记补充1"是对前期学习内容的进一步丰富和完善,旨在帮助开发者更好地理解和掌握iOS开发的关键知识点。这份笔记不仅适用于初学者,对于有一定经验的开发者来说,也是一个有价值的参考资料。 在iOS开发中,...

    iOS学习笔记

    以下是对标题和描述中提及的iOS学习笔记的关键知识点的详细解释: 1. **类的声明和实现**: - OC中的类由`.h`和`.m`两个文件组成,`.h`文件负责声明属性和方法,`.m`文件实现这些声明。 2. **继承与Foundation...

    iOS开发内存分配图示

    在iOS开发中,理解内存管理是至关重要的。本文档将详细介绍iOS开发中的内存分配机制,包括不同区域的内存分配方式及其特点。 #### 二、虚拟内存与物理内存 在iOS应用开发过程中,内存管理主要依赖于虚拟内存系统。...

    iOS 学习笔记

    综上所述,这份"iOS学习笔记"涵盖了Swift编程、UIKit框架、数据管理、网络编程、UI设计、通知服务以及测试与优化等多个重要领域,是全面学习iOS开发的宝贵资料。通过深入学习和实践,你可以逐步成为一名熟练的iOS...

    ios学习笔记

    本文将深入探讨从标题和描述中提及的iOS学习笔记,特别是关于OC面向对象编程的一些关键概念和实践。 面向对象编程(OOP)是OC的核心,它强调通过封装、继承和多态来组织代码。在OC中,类(Class)是对象的蓝图,...

    ios开发学习笔记(三)

    在“ios开发学习笔记(三)”中,博主可能还会讨论调试技巧,如使用Xcode的调试器,理解断点、变量观察以及性能分析工具。此外,可能会涉及多线程编程,如GCD(Grand Central Dispatch)和OperationQueue,以及内存...

    ios 学习笔记

    本文档基于给定的“iOS学习笔记”,深入探讨iOS应用程序生命周期的关键概念、阶段以及如何处理这些阶段。 #### 二、基础知识 **1.1 入口点:** iOS应用的入口点位于`main.m`文件中的`main`函数。此函数通过调用`...

    个人整理超精密的iOS笔记.pdf

    - **加载图片要及时 release**: 加载图片后应该及时释放内存,避免内存泄漏。 - **在 UIImageView 中旋转图像**: 使用 `transform` 属性来旋转图像。 - **在 Quartz 中如何设置旋转点**: 通过设置 `...

    iOSStudyNote:iOS学习笔记

    iOS学习笔记 十年生死两茫茫,不思量,自难忘,华年短暂,陈辞岁月悠悠伤, 满腔热血已芜荒,展未来,后生强,战战兢兢,如履薄冰心彷徨, 青丝化雪、鬓角成霜,已是英雄迟暮,人生怎慷慨激昂? 目录 内存管理(五) ...

    iOS史上最全的OC笔记

    3. **内存管理**:OC使用引用计数进行内存管理,笔记会讲解`retain`、`release`、`autorelease`等关键字的使用,以及ARC(Automatic Reference Counting)自动引用计数的原理和实践。 4. **类别与分类**:OC允许对...

    iOS 学习C语言部分,代码和笔记,超详细

    C语言提供了丰富的数据类型,如整型(int)、字符型(char)、浮点型(float, double)等,以及指针类型,使得内存管理更为灵活。 在学习C语言的过程中,变量是关键概念之一。变量是存储数据的容器,有特定的数据...

    iOS 学习OC语言部分,代码和笔记,超详细

    本压缩包提供的学习资料涵盖了OC语言的基础到高级特性,结合代码实例和详细笔记,是iOS开发者深入理解OC语言的宝贵资源。 一、Objective-C基础 Objective-C是C语言的超集,它引入了面向对象的概念,如类、对象、...

    xamarin学习笔记B02(ios程序启动了解)

    在本学习笔记B02中,我们将深入探讨Xamarin.iOS下的应用启动机制,主要包括以下关键知识点: 1. **Xamarin基础知识**:Xamarin是一种跨平台的移动开发框架,它允许开发者使用C#语言编写代码,生成原生的Android、...

    ios开发笔记

    以上内容仅是这份“iOS开发笔记”的概览,实际文档中将有更深入的讲解和示例代码,以确保开发者能够系统性地学习和实践iOS开发。通过这些笔记,无论是新手还是老手,都能提升自己的iOS开发技能,为构建高质量的iOS...

    xamarin学习笔记B04(ios的xib)

    然而,对于小型项目或需要独立管理的界面部分,使用Xib更加合适,因为它可以单独编译和加载,减少了应用启动时的内存占用。 在Xamarin中,开发者可以利用Visual Studio for Mac或者Visual Studio中的Interface ...

    Delphi XE2 之 FireMonkey 入门学习笔记

    9. **内存管理**:FireMonkey 使用垃圾回收机制,自动管理内存,减少了内存泄漏和资源管理的困扰。 10. **网络和设备访问**:FireMonkey 提供了一系列的API,可以方便地访问设备硬件、网络服务和系统功能。 **学习...

    IOS 开发笔记

    【标题】:“IOS 开发笔记” 【描述】:“IOS 开发总合”涵盖了iOS应用程序开发的各个方面,包括Swift编程语言、iOS SDK、Xcode集成开发环境、用户界面设计、网络编程、数据存储、多线程、性能优化以及Apple的App ...

    ios学习记录

    在iOS学习过程中,我们会...在53.study__ming1016这个文件中,可能包含了相关的学习笔记、代码示例或者项目实践,这将对你的iOS学习之路大有裨益。继续探索和实践,你将能够创建出功能丰富、用户体验优秀的iOS应用。

Global site tag (gtag.js) - Google Analytics