蓝懿-打飞机图片,内存管理基础 刘国斌老师

一 图片

1背景图片

因为是两张相同图片不断重复出现  开始时瞬间加载

用for(int i=0,i<2,i++)   开timer实现动作

2飞行效果

是两张图片出现一个位置 长时间变换加载

开timer

int count;

count++;

if(count%2=0){

self.image=[uiimage imagenamed:@"1"]}

else{

self.image=[uiimage imagenamed:@"2"]}

3爆炸效果

多张图片按顺序变换,只重复一次

开timer   若为五张图

int count;

count++;

if(count==5){

[timer invalidate];

[self.hero removefromsuperview];

}

self.hero=[uiimage imagenames:@" "; 按顺序显示图片

二 内存管理基础

有retain assign copy等 是在声明属性的()中设置 用来声明set方法

retain(strong)

retain 在set方法中做两件事   1把原来的值release 2 把新传入的值retain

NSmutablearray *b1=[[NSmutablearray alloc]init];

这是一个局部变量 alloc 在堆内存中开辟  内存计数+1 出了局部不会有变量指向这块被开辟的内存

局部变量会自动 release

如果创建一个retain的属性self.b1

self.b1=[[Nsmutablearray alloc]init];

alloc开辟内存 内存计数+1   赋值给self  内存计数+1  ;

(此处如果只alloca+1 那么出了局部 被release后 ,则self.b1无法指向被开辟的内存)

此处retain方法的意义就是 把self.b1的值先release  再把等号右边传入的值retain 到 self.b

此时内存计数为2

若同时两个

self.b1=[[Nsmutablearray alloc]init];

self.b1=[[Nsmutablearray alloc]init];

第一次retain 内存计数+2   第二次内存计数又+2同时-1

如果此处第二次retain不先把self.b1第一次的值释放掉

那么第二次retain会直接把self.b1指向第二次alloc 开辟的堆内存中

则第一个alloc开辟的内存无变量指向 无法调用 成为内存泄露

assign (assign)

一般类似int float 这种用  会让set方法只是赋值给全局变量 和内存计数无关

时间: 2024-10-13 22:27:33

蓝懿-打飞机图片,内存管理基础 刘国斌老师的相关文章

蓝懿 ios的一周学习总结 刘国斌老师

再一次来到北京,我激励自已这一次一定要有所收获,有所成功.不能再像大学那样子混日子,浪费自已的青春,看着身边的朋友一个个的付出努力地汗水并成长着,而独自神伤的继续颓废.因为害怕失败所以我对未来的学习方向与机构进行了详细的考察.不光在网上多次咨询 还一次次到了每一个培训机构参观考察. 去过蓝欧 达内 千峰 尙观等,他们又大又小每一个我都试听了半天.每一个都亲身感受了一次,最后我来决定了来到蓝欧不仅仅是因为他的价格最低更是因为所有的培训机构所学的内容都是一样的,但老师要照顾六七十学生,和老师教20个

蓝懿iOS培训日志1 全新的开始 刘国斌老师

8月中旬开始上课,几天下来感触很多,想为未来的自己留个回忆,同时和大家交个朋友交流一下,不定期更新. 我的培训之路真是,坎坷.几经周折才定下来.不过也应了那一句话,好事多磨.现在每天就是,上课,吃饭,睡觉.对现在这个机构的上课环境,师资,住宿环境都很满意.希望培训结束时,可以加一句:对自己的努力也很满意. 7月份去了千锋,因为不习惯呆在近一百人的班级,不喜欢环境(住宿,饮食)所以就走了,只呆了两天,老师讲的是基础,所以对于千锋老师讲的好坏不做评价.这就算我个人原因吧. 因为偶然同学介绍了一个老师

蓝懿iOS培训日志2 复习NSString基本用法及练习心得 刘国斌老师

今天是自习,前几天微信打飞机的游戏在老师的带领下做了一遍,今天又回顾了一遍,然后自己尝试性的做了一个简化的AngryBird,在做的过程中发现了一些小问题,有时候容易马虎,少了一行代码,一个return 或者一个初始化 却要花好久才能检查出来,实在是不应该,以后马虎一次,就把错的地方打上备注并且在心里默默的背十遍,以后还错还这样,我觉得应该很有效的避免重蹈覆辙吧.最近还是觉得能力有限,很多想法都不能实现或者实现起来很麻烦,这也将成为我学习的动力,希望以后看到现在的日志可以会心一笑,心里默默地告诉

iOS 刘国斌,蓝懿刘国斌

5天以前来到蓝懿开始我的iOS学习生涯,获取知识的时候时间过得很快,5天已经过去了,从开始的时候对iOS这个概念都一知半解,到现在能自己摸索着试着写出一些简单的小游戏小项目,像简单版的计算器.打砖块,接水果,微信飞机大战等,并在里面加些自己的想法,虽然编写代码的过程中时常会有些错误,但才刚开始学习,出错在所难免,多多练习.思考,从错误中汲取知识才是最重要的,同时感觉自己这一周的时候收获很多. 对于学习知识或者一项技能,学习方法和心态是很重要,在学习当中应该保持一颗良好的心态.应该借鉴别人好的学习

蓝懿iOS,刘国斌iOS

来到蓝懿已经是第四天了,刘国斌老师亲自授课.刘老师讲课非常好,很生动形象,便于我们零基础的理解.以前就有朋友和同学之类的做it行业,她们有些也是女生,也做得不错.这次通过朋友的介绍来到北京,刘国斌老师的培训机构,坐了22个小时的火车,简直累到内向,趋于崩溃.不过来到北京之后,刘国斌老师的助理很友好以及热情,帮我们联系住宿的地方,而且还帮忙提行李,心里面很感激. 8月底的时候去了一次千峰,第一感觉那里的学费比较贵,而刘国斌老师这里的ios培训第二期的女生只需要半价哦,6000元整,而且都是刘老师亲

计算机操作系统学习笔记_7_内存管理 --内存管理基础

h2.western { font-family: "Liberation Sans",sans-serif; font-size: 16pt; }h2.cjk { font-family: "微软雅黑"; font-size: 16pt; }h2.ctl { font-family: "AR PL UMing CN"; font-size: 16pt; }h1 { margin-bottom: 0.21cm; }h1.western { fon

ios 进阶 -- 图片内存管理

最近在做优化程序的性能方面的工作,涉及到了图片内存管理方面,所以这方面的内容总结一下, 1,为什么做图片内存管理? 问题a,程序启动后,浏览图片时, 内存一直增长. 问题b,  浏览图片时,程序UI显示不流畅,即使本地的图处,也不流畅. 2,怎么做图片内存管理? 对应用程序域内的图片内存进行管理, 当程序的多个地方需要 引用一个图片时,都指向同一个图片的内存地址. 3,如何做? 如果是本地资源时的图片,地址固定,不存在过期问题 我们可以直接 使用系统  [UIImage  ImageName:]

Redis数据库操作、持久化详解及内存管理基础概览

Redis数据库操作.持久化详解及内存管理基础概览 前言 ? 上篇主要介绍了redis的编译安装流程以及redis常用的两个命令工具,本文主要讲述redis的数据库相关操作:增删改查等等,以及简述理解redis持久化原理和配置操作. Redis数据库操作 Redis 数据库常用命令(一般大小写均可)--比较简单,直接介绍语法,自行尝试验证当然这些只是冰山一角,例如不同的数据类型对应的操作都不一样,有研究兴趣的可以深入了解.单个数据库命令: set--写入数据 语法:set key value g

.NET基础拾遗(1)类型语法基础和内存管理基础2

二.内存管理和垃圾回收 2.1 .NET中栈和堆的差异? 每一个.NET应用程序最终都会运行在一个OS进程中,假设这个OS的传统的32位系统,那么每个.NET应用程序都可以拥有一个4GB的虚拟内存..NET会在这个4GB的虚拟内存块中开辟三块内存作为 堆栈.托管堆 以及 非托管堆. (1).NET中的堆栈 堆栈用来存储值类型的对象和引用类型对象的引用(地址),其分配的是一块连续的地址,在.NET应用程序中,堆栈上的地址从高位向低位分配内存,.NET只需要保存一个指针指向下一个未分配内存的内存地址