摘要: 4.Cocoa内存管理规则1)当你使用new、alloc、copy方法创建一个对象时,该对象的保留计数器值为1.当不再使用该对象时,你要负责向该对象发送一条release或autorelease消息。这样,该对象将在其使用寿命结束时被销毁。2)当你通过其他方法获得一个对象时,这假设该对象的保留计数器值为1,而且已经被设置为自动释放,你不需要执行任何操作来确保该对象被清理。如果你打算在一段时间内拥有... 阅读全文
posted @ 2010-10-25 23:13 Elf Sundae 阅读(1580) 评论(0) 推荐(1) 编辑
摘要: 注:本章对初学者比较晦涩,建议参考或直接阅读英文原本来理解。1.对象生命周期对象的生命周期包括诞生(通过alloc或new方法实现)、生存(接收消息和执行操作)、交友(借助方法的组合和参数)、释放(当它们的生命结束时最终死去)。当对象的生命周期结束时,它们的原材料(内存)将被回收以供新的对象使用。引用计数(reference counting):每个对象有一个与之相关联的整数,称做它的引用计数器或... 阅读全文
posted @ 2010-10-25 23:06 Elf Sundae 阅读(1014) 评论(0) 推荐(0) 编辑
摘要: 7.综合示例:查找文件程序功能:查找主目录中某类型(.jpg)文件并输出找到的文件列表。NSFileManager提供对文件系统的操作,如创建目录、删除文件、移动文件或者获取文件信息。在这个例子里,将使用NSFileManager创建NSdirectoryEnumerator来遍历文件的层次结构。使用了两种方法遍历:俺索引枚举 和 快速枚举 (见注释说明):[代码] 阅读全文
posted @ 2010-10-25 03:30 Elf Sundae 阅读(1800) 评论(3) 推荐(0) 编辑
摘要: 5.各种数值NSArray和NSDictionary只能存储对象,而不能直接存储任何基本类型的数据,如int、float 或 struct。但是你可以用对象来封装基本数值。例如,将int型数据封装到一个对象中,然后就可以将这个对象放入NSArray或NSDictionary中了。1)NSNumberCocoa提供了NSNumber类来包装(即以对象形式实现)基本数据类型。例如以下创建方法:[代码]... 阅读全文
posted @ 2010-10-25 03:26 Elf Sundae 阅读(2015) 评论(2) 推荐(2) 编辑
摘要: 5)字典:NSDictionary字典就是关键字及其定义(描述)的集合。Cocoa中的实现字典的集合NSDictionary在给定的关键字(通常是一个NSString)下存储一个数值(可以是任何类型的对象)。然后你就可以用这个关键字来查找相应的数值。不同于数组,字典(也被称为散列表或关联数组)使用的是键查询的优化存储方式。它可以立即找出要查询的数据,而不需要遍历整个数组进行查找。可使用dictio... 阅读全文
posted @ 2010-10-25 03:21 Elf Sundae 阅读(1682) 评论(0) 推荐(1) 编辑
摘要: 4.集合集合类:NSArray 、NSDictionary1)NSArrayNSArray是Cocoa的一个类,用来存储对象的有序列表,可以在NSArray中放入任意类型的对象。NSArray中只能存储Objective-C的对象,而不能存储C语言中的基本数据类型,如int,float,enum,struct,或者NSArray中的随机指针。同时,也不能在NSArray中存储nil(对象的零值或N... 阅读全文
posted @ 2010-10-25 03:17 Elf Sundae 阅读(2200) 评论(0) 推荐(0) 编辑
摘要: Cocoa是由两个不同的框架组成:Foundation Kit 和 Application Kit(AppKit)。AppKit包含了所有的用户接口对象和高级类。 1.范围NSRange:用来表示相关事物的范围,定义于NSRange.h。通常是字符串里的字符范围或者数组(NSArray)里的元素范围。[代码]创建方法:直接给字段赋值:[代码]或者,应用C语言的聚合结构赋值机制:[代码]或者,适用C... 阅读全文
posted @ 2010-10-25 02:49 Elf Sundae 阅读(3498) 评论(0) 推荐(0) 编辑
摘要: 更改源码注释中的公司名字:运行Terminal,输入如下代码回车后重启Xcode。替换其中的Elf.Sundae(at)Gmail.com(只一行)defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{"ORGANIZATIONNAME" = "Elf.Sundae(at)Gmail.com ";}'1.配置高亮方案:... 阅读全文
posted @ 2010-10-25 01:25 Elf Sundae 阅读(3771) 评论(1) 推荐(0) 编辑
摘要: @class关键字如要需要导入某类的功能代码则需要包含这个类的.h文件,如果只需要知道这个东西是个类(如某文件中如下声明: Person *person; )使用@class就可以了(@class Person;)。正确的使用@class指令能够减少编译时间。 源文件组织示例: 阅读全文
posted @ 2010-10-25 00:27 Elf Sundae 阅读(1223) 评论(0) 推荐(0) 编辑
摘要: if(self = [ super init] { …若要超类可以完成所需的一次性初始化,需要调用[super init]。init方法返回的值(id型数据,即泛型对象指针)描述了被初始化的对象。将[super init]的结果赋给self是Objective-C的标准惯例。这么做是为了防止超类在初始化过程中返回的对象不同于原先创建的对象。存取方法存取方法(accessor meth... 阅读全文
posted @ 2010-10-25 00:20 Elf Sundae 阅读(798) 评论(0) 推荐(0) 编辑
摘要: Objective-C中的OOP@interface //定义类的公共接口。实例变量{ int a;}方法声明- (void) draw;- (void) setFillColor: (ShapeColor) fillColor; //fillColor为方法参数先行短线表明“这是新方法的声明”。(void)表明该方法不返回任何值。方法名称是 setFillColor: ... 阅读全文
posted @ 2010-10-25 00:04 Elf Sundae 阅读(955) 评论(3) 推荐(0) 编辑