OC10_数组的内存管理
- //
- // main.m
- // OC10_数组的内存管理
- //
- // Created by zhangxueming on 15/6/18.
- // Copyright (c) 2015年 zhangxueming. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #import "Dog.h"
- int main(int argc, const char * argv[]) {
- @autoreleasepool {
- Dog *dog1 = [[Dog alloc] init];
- Dog *dog2 = [[Dog alloc] init];
- Dog *dog3 = [[Dog alloc] init];
- Dog *dog4 = [[Dog alloc] init];
- Dog *dog5 = [[Dog alloc] init];
- //往数组中添加对象, 对应对象的retainCount 值+1;
- NSLog(@"dog1 retainCount = %li", dog1.retainCount);
- NSMutableArray *dogs = [[NSMutableArray alloc] init];
- [dogs addObject:dog1];//dogs[0]-->dog1
- [dogs addObject:dog1];//dogs[1]-->dog1
- NSLog(@"dog1 retainCount = %li", dog1.retainCount);
- [dogs addObject:dog2];//dogs[2]-->dog2
- [dogs addObject:dog3];
- [dogs addObject:dog4];
- [dogs addObject:dog5];
- [dog1 release];
- [dog2 release];
- [dog3 release];
- [dog4 release];
- [dog5 release];
- NSLog(@"dog1 retainCount = %li", dog1.retainCount);
- //数组对象release 实际上是对数组中的每个一个元素 release 一次
- [dogs release];
- //NSLog(@"dog1 retainCount = %li", dog1.retainCount);
- }
- return ;
- }
OC10_数组的内存管理的更多相关文章
- Java数组的内存管理
Java数组的内存管理 Java语言是典型的静态语言,因此Java的数组是静态的,即当数组被初始化之后,该数组的长度是不可变的.Java程序中的数组必须经初始化才能使用.所谓初始化,就是当数组对象的元 ...
- 读书笔记一 Java程序员的基本修养(数组及其内存管理)
1.1 数组初始化 1.1.1 java数组是静态的 java数组被初始化之后,该数组所占的内存空间.数组长度都是不可变的. java程序中的数组必须经过初始化才可使用. 数组的初始化有两种方式: 1 ...
- Object-c 内存管理
内存管理 主要内容 1.内存管理的概念 2.引用计数 3.如何持有对象所有权 4.自动释放池 5.@property的使用 什么是内存管理 内存管理是关于如何管理对象生 ...
- OC基础 内存管理
OC基础 内存管理 我们所了解的c语言内存管理,如下: (1)c语言的内存分配:char *p = (char*)malloc(100*sizeof(char)); (2)c语言的内存释放:free ...
- iOS开发-内存管理
内存管理 对于这篇呢,其实现在都是ARC模式,正常状态下基本不用我们去手动释放内存,所以如果不是要面试呀.装逼或者扎实功底的,就先别看了或者了解下即可,因为像面试时,有些面试官想看你的基础时,就有些人 ...
- C++解析(31):自定义内存管理(完)
0.目录 1.遗失的关键字mutable 2.new / delete 3.new[] / delete[] 4.小结 5.C++语言学习总结 1.遗失的关键字mutable 笔试题: 统计对象中某个 ...
- C++中的自定义内存管理
1,问题: 1,new 关键字创建出来的对象位于什么地方? 1,位于堆空间: 2,有没有可能位于其它地方? 1,有: 2,通过一些方式可以使动态创建的对象位于静态存储区: 3,这个存储区在程序结束后释 ...
- C语言基础 - 实现动态数组并增加内存管理
用C语言实现一个动态数组,并对外暴露出对数组的增.删.改.查函数 (可以存储任意类型的元素并实现内存管理) 这里我的编译器就是xcode 分析: 模拟存放 一个 People类 有2个属性 字符串类型 ...
- Java进阶2 数组内存和对象的内存管理知识
Java进阶2 数组内存和对象的内存管理知识 20131028 前言: 在面试的时候,如果是Java的编程语言,也许你认为没有什么可以问的,只能够说明你对于Java了解的太浅了,几乎就是两个星期的节奏 ...
随机推荐
- 在linux下编译netcat并且反弹cmdshell(转载)
本地Windows监听 nc -vv -l -p 1234 首先从sf上get一个tar的压缩包 wget http://sourceforge.net/projects/netcat/files ...
- Cocos2D Study - Preparation & Installation
---------------------------------------------------------------------------------------------------- ...
- C#制作在线升级程序
//这是一个webservice private AppUpdate.UpdateServ UpdateSvr; private void button1_Click(object sender, S ...
- delphi 为应用程序添加提示
type TForm1 = class(TForm) Button1: TButton; Panel1: TPanel; Edit1: TEdit; procedure Fo ...
- 怎样破解邮箱password
破解邮箱password怎样破解邮箱password邮箱在我们的生活中日益成为一个不可或缺的角色.公司与公司之间的商贸往来,学生与老师间的学习交流,以及占非常大部分的私人信件的往来等等非常难离开它.但 ...
- 视频-某hadoop高级应用-搜索提示
看了北风的免费视频,只有一个案例,苦逼买不起几百上千的视频教程 先搭建简单的web项目,基于struts,使用到了bootstrap. 界面: web.xml <filter> <f ...
- 关于mybatis用mysql时,插入返回自增主键的问题
公司决定新项目用mybatis,虽然这个以前学过但是一直没用过都忘得差不多了,而且项目比较紧,也没时间去系统点的学一学,只好很粗略的百度达到能用的程度就行了. 其中涉及到插入实体要求返回主键id的问题 ...
- c++之函数原型
函数原型: [作用域] [函数连接规范] 返回值类型 [函数调用规范] 函数名 (类型1[形参1]...); 函数定义: [函数连接规范] 返回值类型 [函数调用规范] 函数名 (形参列表) {... ...
- Android进阶笔记13:RoboBinding(实现了数据绑定 Presentation Model(MVVM) 模式的Android开源框架)
1.RoboBinding RoboBinding是一个实现了数据绑定 Presentation Model(MVVM) 模式的Android开源框架.从简单的角度看,他移除了如addXXListen ...
- 用DAEMON TOOLS打开rational ross 的bin文件并安装过程梳理
最近要开始准备毕业设计了,学习熟悉了一些UML用例图.类图之类的,开始准备用自家PC电脑画图的时候发现Rational Ross没安装. 本以为简单,却碰上bin文件.琢磨好久,终于把Ross安上了. ...