2016-04-14 13:35:50 750浏览
有着苹果公司作为坚实后盾的ios系统,在移动开发市场一直处于霸主地位。国内各大企业也渐渐看清了移动互联对于自身发展的重要性,随之大批ios开发岗位纷纷抛射而出。本文扣丁学堂主要为读者介绍ios开发岗位职责之自动释放池与类工厂的功能。
浅谈ios开发岗位职责之自动释放池与类工厂:
1、自动释放池是什么,如何工作
当您向一个对象发送一个autorelease消息时,Cocoa就会将该对象的一个引用放入到最新的自动释放池。它仍然是个正当的对象,因此自动释放池定义的作用域内的其它对象可以向它发送消息。当程序执行到作用域结束的位置时,自动释放池就会被释放,池中的所有对象也就被释放。
ojc-c 是通过一种"referring counting"(引用计数)的方式来管理内存的, 对象在开始分配内存(alloc)的时候引用计数为一。以后每当碰到有copy,retain的时候引用计数都会加一, 每当碰到release和autorelease的时候引用计数就会减一,如果此对象的计数变为了0, 就会被系统销毁.NSAutoreleasePool 就是用来做引用计数的管理工作的,这个东西一般不用你管的,autorelease和release没什么区别,只是引用计数减一的时机不同而已,autorelease会在对象的使用真正结束的时候才做引用计数减一。
2、类工厂方法是什么
类工厂方法的实现是为了向客户提供方便,它们将分配和初始化合在一个步骤中,返回被创建的对象,并进行自动释放处理。这些方法的形式是+ (type)className...(其中 className不包括任何前缀)。工厂方法可能不仅仅为了方便使用。它们不但可以将分配和初始化合在一起,还可以为初始化过程提供对象的分配信息。类工厂方法的另一个目的是使类(比如NSWorkspace)提供单件实例。虽然init...方法可以确认一个类在每次程序运行过程只存在一个实例,但它需要首先分配一个“生的”实例,然后还必须释放该实例。工厂方法则可以避免为可能没有用的对象盲目分配内存。
扣丁学堂ios培训讲师:由于高校并没有系统全面的ios开发课程,仅仅依靠专业培训机构输送人才的速度,远远满足不了市场的需求。导致如今ios开发人才缺口巨大。扣丁学堂专注于ios开发培训视频讲解,让学员从零开始学ios开发无压力。