- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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?返回的实例,而要使用初始器返回的实例。
通过调用类的工厂方法来创建对象回到顶
您可能关注的文档
- java基础三.docx
- Java IO包.ppt
- CH9JavaIO读和写.ppt
- Spring_2_Bean的管理.ppt
- java笔试题第二套题.doc
- 第七章 函数的重载.ppt
- java_7_异常.ppt
- 19-JDK5新特性.ppt
- 第三章Java中的类和对象.ppt
- 9.1 String类.ppt
- 2025年8月 在全市防汛工作视频会议上的讲话.docx
- 在2025年市委常委班子集中整治问题整改工作专题会议上的讲话+党课:以过硬作风护航高质量发展以实干担当书写新时代“赶考”答卷.pdf
- 国有企业2025年在“贯彻党中央决策部署和国企改革要求方面、全面从严治党责任落实方面、基层党组织建设方面、巡察整改长效机制建设四个方面”巡察整改专题民主生活会存在的原因分析.docx
- 2篇 2025年在四届区委第十三轮巡察动员部署会议上的讲话.pdf
- 在理论学习中心组巡视整改专题学习研讨会议上的讲话+在省委巡视反馈问题整改部署会上的讲话+工作领导小组会议上的讲话.pdf
- 2篇 2025年在四届区委第十三轮巡察动员部署会议上的讲话.docx
- 2025年国企理论学习中心组巡视巡察专题民主生活会会前学习研讨+(2025年四个方面)巡察整改专题民主生活会个人发言提纲.docx
- 局党组、宣传部、纪委监委关于2025年上半年意识形态工作总结及2025年下半年工作打算.pdf
- 4篇 2025年在学习贯彻《中华人民共和国监察法实施条例》研讨交流会上的发言.pdf
- 在市委理论学习中心组中央城市工作会议精神专题学习研讨会上的发言.+关于传达中央城市工作会议精神的讲话提纲.docx
最近下载
- 最新2025年社工(初级)考试题库(+答案).docx VIP
- 体例格式7:工学一体化课程《windows服务器基础配置与局域网组建》任务6学习任务教学活动策划表.docx VIP
- 无陪护理优劣的探讨.doc VIP
- TCALAS 38-2017 实验动物 SPF鸡和SPF鸭饲养管理指南.pdf VIP
- 2024年全国农产品质量安全检测技能竞赛理论知识考试题库(含答案).pdf VIP
- (人教版)数学五年级下册应用题“天天练”400题(第二辑),附参考答案.pdf VIP
- 体例格式7:工学一体化课程《windows服务器基础配置与局域网组建》任务5学习任务教学活动策划表.docx VIP
- 《社区服务与管理》课程标准.docx VIP
- 地理初高中知识衔接课件.pptx VIP
- 高考英语3500词频表.pdf VIP
文档评论(0)