




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Objective_C入门及开发环境介绍,柳行刚,Objective-C概述,Objective-C是一种简单的计算机语言,它可以用来设计复杂的面向对象程序。 Objective-C扩展了标准ANSI C语言,增加了一些定义类、方法以及其它结构的语法,提升了类的动态扩展。 许多传统面向对象的思想,比如封装、继承、多态,都会在Objective-C中体现。,Objective-C与C语方的关系,Objective-C是C语言ANSI版本的超集,支持和C相同的基本语法。用C代码,你可以定义头文件和源码文件,以从详细实现的代码中分离出公开的声明。,Objective-C代码的扩展名,Objective-C类的定义,和大多数其它面向对象语言一样,Objective-C里的类也提供基本的结构,用来封装带有行为的一些数据。一个对象是一个类的运行实例,包含类中声明变量的实例在内存中的复制,以及指向该类的方法。 Objective-C中类的定义,要求两个明显的部分:接口和实现。接口部分包含类的声明、定义成员变量,及与此类关联的方法。接口通常在a .h 文件里。实现部分包含类的方法实际代码。实现通常在 a .m 文件里。,Objective-C类实例,Objective-C类实例说明,上图声明MyClass类的语法,它继承自Cocoa的基类 NSObject。这个类的声明开始于 interface 编译指令,结束于 end 指令。仅跟着类名的(以冒号分割)是父类名。类的实体变量(有时简称ivars,在一些其它语言中称作成员变量)声明在以大括号(和)括起来的代码块中。实体变量后面是类的方法声明列表。以分号做为每个实体变量和方法的结束标记。,Objective-C的变量,Objective-C支持包含对象的强弱两个类型的变量。在变量声明时,强类型的变量包含类名,弱类型的变量使用类型 id 代替对象。弱类型变量在像集合类中使用频繁,在一个集合中的对象的实际类型可能是未知的。如果你使用过强类型的语言,你可能会认为使用弱类型会引起问题,但是在Objective-C程序中它们实际上提供了很大的灵活性和更强大的动态性。 强类型变量示例: MyClass*myObject1; 弱类型变量示例: id*myObject2;,Objective-C类的方法,Objective-C中的类可以声明两种类型的方法:实体方法和类方法。一个实体方法是在这个特定类的实例中才能执行的方法,换句话说,在调用实体方法前,你必须首先要创建这个类的实例。方法的声明由方法的类型标识符、一个返回值类型、一个或多个签名关键字、参数类型和名称信息组成。,实体方法 insertObject:atIndex:的声明格式,实体方法 insertObject:atIndex:的声明说明,声明开始于减号(-) ,减号用来标识这是一个实体方法。这个方法的实际名称 (insertObject:atIndex:) 是所有签名关键字的拼接,包括冒号。冒号声明了当前的参数.如果方法没有参数,你就可以省略第一个签名关键字。在这个例子中,该方法有两个参数。,Objective-C实体方法调用,当你想调用上面这个方法时,你可以通过向对象 通信 。 通信内容是方法签名和方法要求参数信息。 信息是用中括号 ( 和 )包裹的。在中括号里面,接收信息的对象在左边,信息(包括信息要求的参数)在右边。例如,发送信息insertObject:atIndex: 到变量名为 myArray 的对象,你会用到下面的语法: myArray insertObject:anObject atIndex:0;,Objective-C类方法声明,你使用类方法来创建类的新实例,或访问有关此类的一些共享信息。类方法的声明语法除了一点不同,其它完全和实体方法一样。用加号(+)来代替用减号(-)作为方法类型的标识符。,Object-C类实例,implementation MyClass - (id)initWithString:(NSString *)aName self = super init; if (self) name = aName copy; return self; + (MyClass *)createMyClassWithString: (NSString *)aName return self alloc initWithString:aName autorelease; end,声明属性,声明属性是代替声明及简单实现存取器方法的方便形式。 在类接口里,可以包含属性声明和方法声明。基本的定义用 property 编译指令,之后是类型信息和属性名称。你也可以定制配置属性,比如定义存取器方法如何执行。下面的例子展示一个简单属性的声明: property BOOL flag; property (copy) NSString *nameObject; / 在赋值时复制对象。 property (readonly) UIView *rootView; /声明一个只读方法 每个可读属性指定一个与该属性同名的方法。每个可写属性指定一个额外的方法,格式为 setPropertyName, 属性名的首字母要大写。 在你的类的实现里,你可以使用 synthesize 编译指令来要求编译器依照声明规格创建方法: synthesize flag; synthesize nameObject; synthesize rootView; 你可以合并 synthesize 语句到一行中,如果你愿意: synthesize flag, nameObject, rootView;,协议,一个协议声明的方法可以被任意类实现。协议本身没有类。他们只是简单地定义一个接口让其它对象可靠的实现。当你在你的类里实现一个协议的方法时,就可以说你的类符合那个协议了。 协议被频繁用于为 委拖 对象指定接口。看协议、委托以及其它对象之间的相互作用的最好方式,就是看一个例子。 UIApplication 类实现一个应用程序要求的行为。不用强迫你实现子类 UIApplication 来接收有当前程序状态的简单通知。而是 UIApplication 类通过调用它分配的委托对象的具体方法来发送那些通知。实现 UIApplicationDelegate 协议方法的对象能接收那些通知,并提供恰当的答复。通过将协议的名称用“”包裹起来放到它继承的类后面,来指定你的类遵循或采用的协议。你不用去声明你实现协议的方法。 interface MyClass : NSObject end 协议的声明看起来比较类似一个类的接口,不同的是协议没有父类也不能定义实体变量。下面的例子展示了含有一个方法的简单协议: protocol MyProtocol - (void)myProtocolMethod; end,iPhone开发环境介绍,硬件: 1.苹果电脑, 必须是基于Intel的Macintosh计算机。 2.iPhone或iPod Touch,主要用来测试编写好的程序。 软件: 1.苹果系统MacOS。 2.iPhone SDK(请从/iphone/下载最新版SDK),SDK中包含苹果公司的集成开
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年机关事务管理局医疗保健中心招聘笔试专项练习含答案
- 2017-2018学年高中历史人教版必修三试题第六单元20世纪以来中国重大思想理论成果6-17课后知能检测
- 2017-2018学年高中语文人教版选修先秦诸子选读教师用书第2单元3民为贵
- 九上语文第24课《三顾茅庐》课件
- 2025新版企业员工劳动合同范本
- 地税局知识培训课件
- 基于区块链的可信数字身份认证服务协议
- 2025年法学基础考试试题及答案
- 2025关于物流运输合同范本
- 青少年读物出版协议
- 口才与演讲训练教程(第四版)课件2-2普通话训练
- 新教师三年职业成长规划
- 理化检测员考试题及答案
- 应急疏散培训课件
- 广东省深圳市福田片区2025届数学七上期末质量检测试题含解析
- 公司适用法律法规标准清单2025年08月更新
- 国家中医药管理局《中医药事业发展“十五五”规划》全文
- 美发店租工位合同协议
- 数据结构ppt课件完整版
- 铝模板施工工艺标准
- 采购与供应管理(二)教案
评论
0/150
提交评论