
iphone开发之内存部分
文章平均质量分 80
more2010wei
2010年6月毕于厦门大学软件工程专业,从事移动互联Symbian开发一年多,转为ios开发,对C,C++和Object-C等语言有心得,热衷于技术,喜欢研究算法,具有开源精神!Knuth是我心中永远的神话!
展开
-
iPhone/Mac Objective-C内存管理教程和原理剖析(一)基本原理
版权声明 此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有。欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com/,且必须包含此版权声明的完整内容。 版本 1.1 发表于2010-03-08 前言 初学objectice-C的朋友都有一个困惑,总觉得对objective-C的内存管理机制琢磨不透,程序经常内存转载 2012-05-07 14:07:20 · 1000 阅读 · 0 评论 -
手把手教你ARC——iOS/Mac开发ARC入门和使用
iOS/Mac开发ARC入门和使用转载 2013-04-02 15:04:16 · 1496 阅读 · 0 评论 -
MRC下安全的Block
iOS4以后引入的block,一个比较方便且实用的功能。但是自己在开发的时候遇到了不少的坑,很多都是和内存管理相关的,后来iOS5.0以后有了ARC,有了__weak关键字,所以block使用也就更安全了。 但是,吐槽下我们公司。对于像我们公司这种,还在支持iOS4.3,还在用MRC的来说,很多后来方便的框架和工具都不能用了。而那个坑还是那个坑。 最近在看C++的东西,无意中又想起了这转载 2014-07-17 14:59:05 · 5892 阅读 · 2 评论 -
你真的知道blocks在Objective-C中是怎么工作的吗?
例子1 ? 1 2 3 4 5 6 void exampleA() { char a = 'A'; ^{ printf("%c\n", a); }(); } 这个例子: A.始终能够正常运行 B.只有在使用ARC的情况下才能正常运行 C转载 2014-07-17 17:19:16 · 2403 阅读 · 0 评论 -
ARC下循环引用的问题
最初 最近在开发应用时碰到使用ASIHttpRequest后在某些机器上发不出请求的问题,项目开启了ARC,代码是这样写的: @implement MainController - (void) fetchUrl{ ASIHTTPRequest *request = [ASIHTTPRequest requestWithUR转载 2014-07-17 17:51:08 · 2085 阅读 · 0 评论 -
NSAssert,NSCassert
在苹果的SDK中可以看到这两个都是定义的宏 NSAssert 的定义如下: #define NSAssert(condition, desc, ...) \ do { \ __PRAGM原创 2014-07-03 10:58:06 · 4787 阅读 · 0 评论 -
AsyncDisplayKit入门指南
Facebook前两天发布了其iOS UI框架AsyncDisplayKit(ASDK)1.0正式版,这个框架被用于Facebook自家的应用Paper中,能够提高UI的流畅性并缩短响应时间。 下载和使用 你可以使用CocoaPods来安装AsyncDisplayKit,在Podfile中添加: pod 'AsyncDisplayKit' OC中导入框架header,如果用Swift则可翻译 2015-03-05 17:11:04 · 4243 阅读 · 0 评论 -
Facebook经验:如何保证不同网络环境下的应用体验
在刚刚结束的@Scale 2014大会上,Facebook分享了关于移动应用适配方面的演讲,High Scalability在相关演讲的基础上进行了整理。如何保证移动应用在不同的网络环境、不同的屏幕上都有良好的用户体验一直是个难题,而Facebook有遍及全球的用户,他们一直致力于提高用户体验,在大会上,Facebook重点从团队、技术方面分享了他们的经验。 一开始,Facebook的应转载 2015-03-05 17:49:36 · 1742 阅读 · 0 评论 -
使用COPY声明NSSTRING属性
声明一个NSString属性使用copy要优于使用strong。这同样适用于遵守NSCoding协议的不可变类(immutable class),如NSNumber、NSArray、NSSet等。上面提到的这些类都有一个可变(mutable)的版本。选择使用copy的理由是,NSString属性可能被传入一个NSString实例,也可能是一个NSMutableString实例。当传入了一个NSMu转载 2016-05-18 22:09:07 · 1253 阅读 · 0 评论 -
UIImage的几种应用
1、用imageNamed函数 [UIImage imageNamed:ImageName]; 用imageNamed的方式加载时,系统会把图像Cache到内存。如果图像比较大,或者图像比较多,用这种方式会消耗很大的内存,而且释放图像的内存是一件相对来说比较麻烦的事情。例如:如果利用imageNamed的方式加载图像到一个动态数组NSMutableArray,然后将将数组赋予一个UIView的转载 2012-04-17 11:38:00 · 1661 阅读 · 0 评论 -
iPhone开发之Deep Copy和Shallow Copy的区别
首先,从copy开始说,简而言之,copy的目的就是生成一个新的实例,然后把其成员都按原实例赋值。 对于非指针型的成员,比如BOOL, int, float,这样的赋值可以直接进行。 但是对于指针型的数据,比如Objc中用到的对象,就有Deep Copy和Shallow Copy的区别——这个和在C++中的基本上是一样的:是生成新的成员对象,或是指向同一成员对象。//这个其实也就是Deep转载 2012-03-13 15:20:24 · 1723 阅读 · 0 评论 -
iPhone/Mac Objective-C内存管理教程和原理剖析(二)口诀与范式
版权声明 此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有。欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com,且必须包含此版权声明的完整内容。 版本 1.1 发表于2010-03-08 二口诀与范式 1 口诀。 1.1 谁创建,谁释放(类似于“谁污染,转载 2012-05-07 14:08:29 · 921 阅读 · 0 评论 -
iPhone/Mac Objective-C内存管理教程和原理剖析(四)系统自动创建新的autorelease pool
版权声明 此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有。欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com/,且必须包含此版权声明的完整内容。 版本 1.1 发表于2010-03-08 四系统自动创建新的autorelease pool 在生成新的Run Loop的时候,系统会自动创建新的aut转载 2012-05-07 14:10:50 · 1001 阅读 · 0 评论 -
iPhone/Mac Objective-C内存管理教程和原理剖析(三)@property (retain)和@synthesize的默认实现
版权声明 此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有。欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com,且必须包含此版权声明的完整内容。 版本 1.1 发表于2010-03-08 三 @property (retain)和@synthesize的默认实现 在这里解释一下@prop转载 2012-05-07 14:10:07 · 840 阅读 · 0 评论 -
iphone的内存管理(摘自iphone文档,英语)
About Memory Management Application memory management is the process of allocating memory during your program’s runtime, using it, and freeing it when you are done with it. A well-written program u原创 2012-07-03 16:44:14 · 1456 阅读 · 0 评论 -
关于UITableViewCell的重用初探
UITableViewCell的重用问题答案的核心是这个机制要解决什么样的问题。 关键点在"一个屏幕显示的cell数量"是有限的。 当屏幕滚动时候,就会调用方法获取新的cell,而老的cell会在屏幕外面就不显示了 reuse机制就是这样。。当cell需要显示的时候,会通过identifier标识从queue里面找,找到了这种类型的cell,设置一下内容,显示出来。找不到就all原创 2012-03-15 14:59:13 · 5209 阅读 · 0 评论 -
关于iphone开发中的@property和@synthesize的一些见解
我的体会是@property和@synthesize有以下两个作用: 1.作用一 @property是在头文件.h中声明一个变量的setter和getter方法。 @synthesize是在m文件中定义setter和getter方法的实现。 2.作用二 @property,在声明变量方法的时候可以附加定义该变量的属性。如retain,assign,readonly,nonautomi原创 2012-03-12 17:45:08 · 28668 阅读 · 4 评论 -
iOS内存警告的等级
我们都知道在移动设备上很多资源都是比较紧缺的,尤其时内存,通常都比较小,iPhone4也才只有512MB。而且IOS4.0以后还支持了多任务,这个问题就更加突出了。因此我们在平时设计程序的时候要注意管理好内存,减少不必要的开销,谨防泄露。 由于写的一个小项目存在严重的内存泄漏,程序经常运行时间不长就退出了,调试时候发现运行过程中接受到系统的Memry warning level 1几次以转载 2012-11-19 14:37:27 · 5624 阅读 · 0 评论 -
Objective-C 和 Core Foundation 对象相互转换的内存管理总结
Objective-C 和 Core Foundation 对象相互转换的内存管理总结 iOS允许Objective-C 和 Core Foundation 对象之间可以轻松的转换,拿 NSString 和 CFStringRef 来说,直接转换豪无压力: [cpp] view plaincopyprint? CFStringRef aCFSt转载 2013-02-05 10:27:14 · 3711 阅读 · 0 评论 -
关于iOS不同版本间的内存管理差异和iOS6与以前版本内存管理的兼容
官方文档讲解的是比较详细的: https://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ViewLoadingandUnloading/ViewLoadingandUnloading.html 模拟内存警告: 有三种方法可以实现内存警告。原创 2012-11-19 14:32:16 · 4223 阅读 · 0 评论