内存问题始终是软件开发中的头等大事,iOS开发中也不例外,在面试中也是必问的问题。今天我们主要来讲讲Block中涉及的循环引用问题。当我们自己一开始写代码的时候,可能会大量在block中使用self,但是当看到别人优秀的代码的时候,发现别人常常不是用self,而使用weakSelf. 为什么呢?本文的示例代码上传至 https://github.com/chenyufeng1991/Block_W...
分类:
移动开发 时间:
2016-03-18 01:55:45
阅读次数:
215
前几天把引擎的代码切换到VS2015下来了。光试了试X86的编译。今天因为内存问题试了试X64。发现竟然链接不过。一链接就报告 LNK1102 error out of memory 或者就死在链接的时候不动了。尝试多种配置均不行。最后发现MS竟然默认是使用x86 cross tool来编译x64的代码的。而且IDE里没找到配置修改成x64 native compiler的地方。具体做法是打开v...
分类:
编程语言 时间:
2016-03-15 14:55:29
阅读次数:
844
1、基本类型的值直接保存在栈里 2、引用类型的值保存在堆里,而栈里保存的是一个指向堆的指针。 3、从一个变量向另外一个变量复制时,复制的只是栈里的内容。所以基本类型会直接复制的栈里的值。而引用类型复制的栈只是一指向堆的指针,所以会造成对象引用。 4、作用域链。每个函数被调用时都会创建一个自己的作用域
分类:
其他好文 时间:
2016-03-14 12:11:39
阅读次数:
115
之前发了一篇关于图片加载优化的文章,还是引起很多人关注的,不过也有好多人反馈看不太懂,这次谈谈iOS中ARC的一些使用注意事项,相信做iOS开发的不会对ARC陌生啦。这里不是谈ARC的使用,只是介绍下ARC下仍然可能发生的内存泄露问题,可能不全,欢迎大家补充。 Ps:关于ARC的使用以及内存管理问题
分类:
其他好文 时间:
2016-03-04 20:44:59
阅读次数:
189
我们知道,内存分为栈,堆,块。 栈中的内存由系统自己释放,堆是存对象初始化的地方,块是CPU与内存连接的缓冲器,运行速度比内存快,比CPU慢。 例如,我们NSMutableArray *array = [NSMutableArrar new]; NSMutableArray *array就在栈中,N
分类:
其他好文 时间:
2016-02-29 19:42:05
阅读次数:
135
第四章 变量、作用域和内存问题 ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值。基本类型指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象。基本数据类型是:Undefined、Null、Boolean、Number和String。引用类型的值是保存在内存中的对
分类:
编程语言 时间:
2016-02-27 15:01:05
阅读次数:
170
Objective-C 的内存管理方式有引用计数机制,垃圾回收机制,自动释放池。有alloc,就有释放。iOS应?程序出现Crash(闪退),90%的原因是因为内存问 题。在?个拥有数?个甚?是上百个类的?程?,查找内存问 题极其困难,学会内存管理,能帮我们减少出错的?率。内存问题体现在两个??:内
分类:
移动开发 时间:
2016-02-22 23:37:49
阅读次数:
471
初识Visual Leak Detector 灵活自由是C/C++语言的一大特色,而这也为C/C++程序员出了一个难题。当程序越来越复 杂时,内存的管理也会变得越加复杂,稍有不慎就会出现内存问题。内存泄漏是最常见的内存问题之一。内存泄漏如果不是很严重,在短时间内对程序不会有太大的 影响,这也使得内存
分类:
其他好文 时间:
2016-02-22 19:17:01
阅读次数:
158
InstrumentsARC内存管理悬挂指针 上 一篇博客iOS/OS X内存管理(一):基本概念与原理主要讲了iOS/OSX 内存管理中引用计数和内存管理规则,以及引入ARC新的内存管理机制之后如何选择ownership qualifiers(__strong、__weak、__unsafe_un
分类:
移动开发 时间:
2016-02-22 15:13:48
阅读次数:
240
在之前的界面通信中,我们讲诉了3种传值方法,现在我们提供一种更为方便的传值方法叫做单例传值。 单例的优点在于创建时是全局变量,可以在外部可以使用,没有逐级传值的局限性。但是单例传值会有内存问题,不能将单例进行内存释放,大量创建单例传值,会造成内存问题。 代码演示: #import "Handler.
分类:
移动开发 时间:
2016-02-21 19:57:55
阅读次数:
232