摘要: 一、Agenda 1、NSDate类 1>NSDate是系统一个日期,时间类 2>就是返回当前的日期,时间 3>+(id)date; 4>返回未来secs秒后的日期,时间 5>+(id)dateWithTimeIntervalSinceNow:(NSTimeInterval)secs; 6>distantFuture/distantPast a>未来永远达不到的时间 b>+(id)distantFuture; c>4001-01-01 00:00:00 +0000(设置一个未来永远达不到的时间) d>过去的时间 ... 阅读全文
posted @ 2013-01-03 17:26 千里烟波226 阅读(2223) 评论(0) 推荐(0) 编辑
摘要: 在Xcode4.2中新建一个工程,有三个大类可选: 1.Application:在这个类别下面,你可以看到下面8种可选类型下面对这些工程一一说明: 1.Document-Based Application:工程缺省说明如下:This template provides a starting point for a document-based application. It provides an interface to store documents locally or in iCloud.这个就是iOS新增的一个重要功能--云计算的一个体现,你可以创建一个基于Master-Detail 阅读全文
posted @ 2013-01-03 15:33 千里烟波226 阅读(741) 评论(0) 推荐(0) 编辑
摘要: 一、Blocks Block是一个C Level的语法以及运行时的一个特性,和标准C中的函数(函数指针)类似,但是其运行需要编译器和运行时支持,从IOS4.0开始就很好地支持Blocks。Blocks主要用在一些回调函数的用法上,2个对象通信需要一些回调的时候,比如说2个对象在运行,我们需要知道其中一个对象什么时候完成,我们就需要一个回调函数,之前我们用代理,但是有些小的地方用代理大材小用,Blocks可以用来做一些代理的很好地支撑,可以用来做边界或者一些地方的回调函数。心得:Blocks实质其实就是回调函数。二、C函数指针和Blocks申明 C语言函数指针 int (* CFunc) (i. 阅读全文
posted @ 2013-01-03 14:24 千里烟波226 阅读(3517) 评论(1) 推荐(1) 编辑
摘要: 一、Category类别 1、Category能把一个类的实现分为若干不同文件中。 2、每个Cagegory是类的一部分。 3、类的不同类别可以单独编译(可以让不同开发者负责一个Category) 4、如果把一个类Category(申明和实现)放到一个.m文件中,那么该Category外界不能访问。这样实现了C++中class的private功能 5、Category实际上就是对类的扩展。二、缺点 1、类别Category只能扩展函数,消息,不能扩展字段,变量等。Category只能加一些方法不能加一些变量和字段。三、类别Category命名规范 1、一般Category命名规范... 阅读全文
posted @ 2012-12-26 01:17 千里烟波226 阅读(1732) 评论(0) 推荐(0) 编辑
摘要: 一、协议的具体用法 协议的具体用法就是使用代理。代理设计模式相当于C#当中的委托。二、如何实现代理 这里介绍一个案例三、代理两端如何通讯 代理两段的通讯业就是说代理端和被代理端如何通讯的。四、调用前后顺序的问题如果说你要调用一个协议,但是你在调用的时候你的协议还没有声明,所以程序会报错,解决办法有2个,第一,可以在前面声明一下,例如:@protocol DogBark;放在#import <Foundation/Foundation.h>下面。第二,前向声明可以声明类,例如,class Dog; 如果我们把协议声明放到了前面,但是类的声明在我们声明的后面,那样又会报错,所以解决办法 阅读全文
posted @ 2012-12-25 23:38 千里烟波226 阅读(2612) 评论(2) 推荐(2) 编辑
摘要: 一、什么是协议 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... 阅读全文
posted @ 2012-12-23 23:48 千里烟波226 阅读(800) 评论(0) 推荐(0) 编辑
摘要: 一、O-C当中的内存释放,并不是像java/.net那样有一个自动的释放池,开发人员不用去关心有关内存释放的问题,O-C里面的自动释放池比c语言的手动内存管理要好一些,但是相对于java/.net来说又弱一些,所以说O-C当中的释放属于半自动的释放池。二、什么是自动释放池 1、Autorelease pool 自动释放池(Autorelease pool)是OC的一种内存自动回收机制,可以将一些临时变量通过自动释放池来回收统一释放 自动释放池本事销毁的时候,池子里面所有的对象都会做一次release操作 2、autorelease 任何OC对象只要调用autorelease方法,就会... 阅读全文
posted @ 2012-12-23 21:55 千里烟波226 阅读(8086) 评论(0) 推荐(1) 编辑
摘要: 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){ ... 阅读全文
posted @ 2012-12-23 19:29 千里烟波226 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 一、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中... 阅读全文
posted @ 2012-12-23 13:32 千里烟波226 阅读(3775) 评论(4) 推荐(0) 编辑
摘要: 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这个... 阅读全文
posted @ 2012-12-23 00:33 千里烟波226 阅读(2277) 评论(0) 推荐(0) 编辑