上一页 1 2 3 4 5 6 ··· 11 下一页
摘要: Cocoa提供了两个通用的文件处理类:属性列表和对象编码。属性列表在Cocoa中,有一类名为属性列表的对象,常简写为plist。这些列表包含Cocoa知道如何操作的一组对象。具体来讲,Cocoa知道如何将它们保存到文件中并进行加载。属性列表类包括NSArray、NSDictionary、NSString、NSNumber、NSDate和NSData,以及它们的变体。NSDate程序中经常要处理时间和日期。NSDate是Cocoa中用于处理时间和日期的基础类。可以使用[NSDate date]获取当前的日期和时间,它是一个自动释放对象。NSDate *date = [NSDate date];N 阅读全文
posted @ 2012-10-15 10:48 TQ.CH 阅读(583) 评论(0) 推荐(0) 编辑
摘要: 正式协议与非正式协议一样,正式协议是一个命名的方法列表。但与非正式协议不同的是,正式协议要求显式地采用协议。采用协议的办法是在类的@interface声明中列出协议的名称。此时,你的类遵守该协议。采用协议意味着你承诺实现该协议的所有方法。否则,编译器会通过生成警告来提醒你。正式协议就像Java的接口一样。事实上,Objective-C的协议正是受了Java接口的启发。声明协议下面我们看由Cocoa声明的一个协议--NSCopying。如果你采用了NSCopying协议,你的对象将知道如何复制自己:@protocol NSCopying- (id) copyWithZone:(NSZone *) 阅读全文
posted @ 2012-10-15 10:07 TQ.CH 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 创建类别类别是一种为现有的类添加新方法的方式。可以为任何类添加新的方法,包括那些你没有源代码的类。模拟:你正在编写一个纵横字谜游戏程序,该程序将接收一系列的字符串,确定每个字符串的长度并将这些字符串的长度存入NSArray或NSDictionary中。你需要先将每个长度包装在一个NSNumber对象中,然后才能将期存入NSArray或NSDictionary中。做多了就会厌烦了吧。相反,你可以为NSString类添加一个类别,该类别可以替你完成这项工作。声明类别类别的声明格式与类的声明格式相似:@interface NSString (NumberConvenience)-(NSString 阅读全文
posted @ 2012-10-15 09:08 TQ.CH 阅读(312) 评论(0) 推荐(0) 编辑
摘要: Objective-C2.0中引入了特性(property),它组合了新的预编译指令和新的属性访问器语法。新的特性功能显著减少了必须编写的冗长代码的数量。Objective-C的特性只适用于Leopard或更高版本。特性主要应用于Cocoa的新组件(尤其是华丽夺目的Core Animation效果)。@property是一种新的编译器功能,表示声明了一个新对象的属性。@property float rainHanding;语句表明这是具有float类型的属性,其名称为rainHanding。而且,你可以通过调用-setRainHanding:来设置属性,通过调用-rainHanding来访问属 阅读全文
posted @ 2012-10-15 09:07 TQ.CH 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 目前为止,两种创建新对象的两种方法:第一种是[类名 new],第二种是[[类名 alloc] init]。这两种方法是等价的,不过,通常的Cocoa惯例是使用alloc和init,而不使用new。分配对象分配(allocation)是一个新对象诞生的过程。从操作系统获得一块内存并将其指定为存放对象的实例变量的位置。向某个类发送alloc消息的结果,就是为该类分配一块足够大的内存,以存放该类的全部实例变量。同时,alloc方法还顺便将这块内存区域全部初始化为0。同于未初始化内存而引起的各种各样的随机bug曾经折磨着许多放言,而alloc方法将分配的内存初始化为0,这样就不用担心此类问题了。所有的 阅读全文
posted @ 2012-10-15 09:04 TQ.CH 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 每个对象都维护一个保留计数器。对象被创建时,其保留计数器值1;对象被保留时,保留计数器值加1;对象被释放时,保留计数器值减1;当保留计数器值归0时,对象被销毁。在销毁对象时,首先调用对象的dealloc方法,然后回收其占用的内存以供其它对象使用。当对象接收一条autorealse消息时,其保留计数器并不立即改变。相反,该对象只被放入NSAutoreleasePool中。当自动释放池被销毁时,会向池中的所有对象发送release消息,所有被自动释放的对象都将其保留计数器值减1。如果保留计数器值归0,则对象被销毁。当使用AppKit时,Objective-C会在适当的时间为你创建和销毁自动释放池, 阅读全文
posted @ 2012-10-12 13:29 TQ.CH 阅读(255) 评论(0) 推荐(0) 编辑
摘要: Foundation框架只是Cocoa的一部分。Cocoa Foundataion框架中有很多有用的、面向数据的低级类和数据类型,例如NSString、NSArray、NSEnumerator和NSNumber。Foundation框架拥有100多个类。一些有用的数据类型范围的作用 NSRangetypedef struct _NSRange{unsigned int location;unsigned int length;} NSRange;这个结构体用来表示相关事物的范围,通常是字符串里的字符范围或者数组里的元素范围。location字段存在该范围的起始位置,而length字段则是该范围 阅读全文
posted @ 2012-10-12 10:22 TQ.CH 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 1. 文件CMD + N: 新文件CMD + SHIFT + N: 新项目CMD + O: 打开CMD + S: 保存CMD + SHIFT + S: 另存为CMD + W: 关闭窗口CMD + SHIFT + W: 关闭文件2. 编辑CMD + [: 左缩进CMD + ]: 右缩进CMD + CTRL + LEFT: 折叠CMD + CTRL + RIGHT: 取消折叠CMD + CTRL + TOP: 折叠全部函数CMD + CTRL + BOTTOM: 取消全部函数折叠CTRL + U: 取消全部折叠CMD + D: 添加书签CMD + /: 注释或取消注释CTRL + .: 参数提示E 阅读全文
posted @ 2012-10-12 10:21 TQ.CH 阅读(270) 评论(0) 推荐(0) 编辑
摘要: Objective-C类的源代码由两部分组成。一部分是的接口(interface),用来提供类的公共描述。接口包含了所有使用该类所需的信息。编译器编译@interface部分后,就能够使用该类的对象,调用类方法,将对象复合到其它类中和创建子类。另一部分是实现(implementation)。@implementation部分告诉Objective-C编译器如何让该类工作。这部分代码实现了的接口中声明的方法。类的代码通常放在两个文件里。一个文件存放接口部分的代码:类的@interface指令、公共struct定义、enum常量、#defines和extern全局变量等。由于Objective-C 阅读全文
posted @ 2012-10-10 09:57 TQ.CH 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 使用复合可组合多个对象,使之分工协作。在实际的过程中,会用到同时使用继承和复合来创建自己的类。编程中的复合就好像音乐中的作曲一样:将多个组件组合在一起配合使用,从而得到完整的作品。在软件开发中,可能会用一个Pedal(脚踏板)和一个Tire(轮胎)对象组合出虚拟的独轮车。在Objective-C中,复合是通过包含作为实例变量的对象指针实现的。严格的讲,只有对象间的组合才能叫复合。诸如int,float,enum和struct等基本类型都被认为是对象的一部分。自定义NSLog()通过NSLog()可以使用%@格式说明符来输出对象,在类中添加description方法就可以自定义NSLog()如何 阅读全文
posted @ 2012-10-08 17:29 TQ.CH 阅读(217) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 11 下一页