掌握基本编程技巧.docVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
掌握基本编程技巧

ios应用开发指南之 掌握基本编程技巧 声明:此指南转载自果迷网,著作权归作者所有,由小行星(Asteroids)编辑整理。 正如它的名字所传达的含义,Foundation 框架是所有 iOS 和 Mac OS X 编程所使用的基本工具。要成为这两个平台上成功的开发者,必须对这套工具了如指掌。 Foundation 框架定义了数量众多的类以及协议,它们各司其职。但三种类和协议的地位更加突出,它们是最基本的部分: 根类和相关的协议。根类,即?NSObject,还伴有一个同名的协议。它确定了所有 Objective-C 对象的基本接口和行为。同时也有一些协议,其他类可以采用这些协议来拷贝这些类的实例并对编码它们的状态。 数值类。数值类能够产生一个实例(称为数值对象),也就是将字符串、数字、日期、二进制数据等基本类型数据封装起来的面向对象包装。 群体类。群体类的一个实例(称为群体)管理着一组对象。区分不同类型的群体就要看访问它所包含的对象的方式是什么。通常,群体中包含的项目都是一系列数值对象。 群体和数值对象是 Objective-C 编程中极其重要的内容,因为它们经常被用作方法的参数和返回值。 根类和 Objective-C 对象 在类继承中,根类不从其他类继承,同时所有其他的类都最终继承自根类。NSObject?是 Objective-C 继承中的根类。其他类都从?NSObject?继承一套基本的接口到 Objective-C 运行时体系中。这些类的实例又都是从?NSObject?继承而获得 Objective-C 最根本的特性。 但就其自身而言,NSObject?的实例做不了什么有趣的事,顶多只是个对象而已。要使用更多属性和逻辑来定制你的程序,就必须创造一个或多个继承自?NSObject?的类,或者使用已有的直接或间接继承自?NSObject?的类。 NSObject?采用了?NSObject?的协议,它声明了一些附加方法,可以被所有对象的接口使用。另外,NSObject.h(包含了?NSObject?类定义的头文件)中包含?NSCopying、NSMutableCopying?和?NSCoding?协议。当某个类采用了这些协议后,它便获得了对象拷贝和对象编码的基本对象行为。模型类(封装了应用数据并管理这些数据的实例的类)经常采用对象拷贝和对象编码协议。 NSObject?类和相关协议定义了创建对象、浏览继承链、查阅对象的特征和功能、比较对象、拷贝对象和把对象进行编码等的一系列方法。本文接下来主要讲述的就是这类任务的基本要求。 创建对象 通常,创建对象时,要先为它分配内存,然后将它初始化。虽然这是两个单独的步骤,但它们联系甚密。有些类可以通过调用它们的工厂方法来创建对象。 创建对象 – 分配内存和初始化 要为对象分配内存,对它的类发送一个?alloc?消息就能得到该类的一个“原始”(未初始化)的实例。当你为一个对象分配内存时,Objective-C 运行时会在应用的虚拟内存中为该对象预留足够大的内存空间。除了分配内存本身之外,这个环节还有另外几个用途,例如把实例变量全部设为 0 等。 为原始实例分配好内存之后,你必须将其初始化。初始化也就是将对象设置为初始状态,换句话说,就是让它的实例变量和属性为合理的值,然后再返回这个对象。初始化是为了保证返回的对象可以被使用。 你会发现在不少框架中都含有?initializers(初始器)方法,即可以初始化对象的方法。它们的形式大多类似。初始器是实例方法,方法开头为?init,返回一个?id?类型的对象。根对象?NSObject?声明了?init?方法,所有其他的类都继承了这个方法。其他的类当然也可以声明自己的初始器,各自要有自己的关键字和参数类型。例如,NSURL 类声明了如下初始器: - (id)initFileURLWithPath:(NSString *)path isDirectory:(BOOL)isDir 当你为一个对象分配内存并将其初始化的时候,可以将内存分配方法和初始化方法嵌套起来。如果使用上边这个初始器的话,可以写成这样: NSURL *aURL = [[NSURL alloc] initFileURLWithPath:NSTemporaryDirectory() isDir:YES]; 作为一种安全的编程习惯,你可以检查返回的对象以验证对象的创建是否正确。如果创建过程中发生了意外而导致对象创建失败,初始器将返回?nil。虽然 Objective-C 允许对?nil?发送消息而不会产生任何副作用(比如抛出异常),但你的代码显然不可能正常工作,因为没有任何方法能够被调用。你不应该使用?alloc?返回的实例,而要使用初始器返回的实例。 通过调用类的工厂方法来创建对象回到顶

您可能关注的文档

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档