摘要:
一、什么是协议 1、协议是多个对象之间协商的一个接口对象 2、协议提供一系列方法用来在协议的实现者和代理者之间的一种通信方式 3、协议类似于C++中的纯虚函数,或者java/.net中的接口二、如何定义协议 1、协议声明,就放在.h文件中,不像类的定义,声明放在.h文件中,实现放在.m文件中。 @protocol MyProtocol<NSObject> //要定义的变量 - (void) init; -(int) update:(int)time; @end 2、Protocol声明一系列方法,这些放在实现Protocol中实现 3、协议方法可以实现opti... 阅读全文
摘要:
一、O-C当中的内存释放,并不是像java/.net那样有一个自动的释放池,开发人员不用去关心有关内存释放的问题,O-C里面的自动释放池比c语言的手动内存管理要好一些,但是相对于java/.net来说又弱一些,所以说O-C当中的释放属于半自动的释放池。二、什么是自动释放池 1、Autorelease pool 自动释放池(Autorelease pool)是OC的一种内存自动回收机制,可以将一些临时变量通过自动释放池来回收统一释放 自动释放池本事销毁的时候,池子里面所有的对象都会做一次release操作 2、autorelease 任何OC对象只要调用autorelease方法,就会... 阅读全文
摘要:
1、NSMutableArray 典型用法View Code NSMutableArray *array = [[NSMutableArray alloc] init]; for (int i = 0; i < 4; i++) { Dog *dog = [[Dog alloc] init]; [dog setID:i]; [array addObject:dog]; [dog release]; } for (Dog *d in array){ ... 阅读全文
摘要:
一、retain属性的主要作用 1、O-C内存管理和点语法 1>OC内存管理正常情况要使用大量的retain和relrese操作 2>点语法可以减少使用retain和release的操作二、@property(retain)编译器如何申明 编译器对于@property中的retain展开是不一样的 主要是要释放上一次的值,增加本次计数器 在dog.h中声明的: @property(retain)Dog *dog; 展开后为: -(void) setDog:(Dog *)aDog; -(Dog *)dog;三、@synthesize编译器如何实现展开 在dog.m中... 阅读全文
摘要:
1、点语法及其好处 1、方便程序员能够很快的转到O-C上来 2、让程序设计简单化 3、隐藏了内存管理细节 4、隐藏了多线程、同步、加锁细 节 5、点语法的使用 Dog *dog=[[Dog aloc] init]; [dog setAge:100]; int dogAge=[dog age]; NSLog(@"Dog Age is %d",dogAge); 下面的代码用点语法 dog.age=200;//调用setAge方法 dogAge=dog.age;//调用age方法 这里的点不上调用的dog这个对象的字段,而且在调用方法。dog.age是在调用setAge这个... 阅读全文