




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Objective-C程序设计 第1讲 Objective-C 简介 本章目标 l了解Objective-C语言 l了解Objective-C的特点 l了解Cocoa相关框架 l掌握Xcode开发工具 l理解Objective-C程序的基本结构 Objective-C语言简介 l作为编程语言来说,Objective-C有悠久的历史 。20世纪80年代初, Brad Cox和Tom Love 以 SmallTalk-80语言为基础发明了Objective-C。 Objective-C在C语言的基础上添加了扩展,成 为了能够创建和操作对象的一门新的程序设计 语言。 l1988年,苹果公司前CEO乔布斯的NeXT Computer公司获得了Objective-C语言的授权 ,并开发出了Objective-C的语言库和一个名为 NEXTSTEP的开发环境。 l1992年自由软件基金会的GNU支持Objective- C。 Objective-C语言简介 l1994年, NeXT Computer和Sun Microsystem联合发布一个针对NEXTSTEP系 统的标准典范OPENSTEP。 l1996年12月20日,苹果公司收购NeXT Software公司, NEXTSTEP/OPENSTEP环境 成为苹果操作系统主要发行版本OS X的基础。 这个版本的开发环境被苹果公司称为Cocoa。 l2006年7月,苹果发布Objective-C 2.0,增加了 垃圾收集(只支持OS X系统)、属性、快速枚 举等语法功能,改进了运行时性能,并添加了对 64位系统的支持。 Objective-C语言特点 lObjective-C与其它面向对象语言有一些明显的不同, 它有这自己鲜明的特色: l兼容性:Objective-C可以说是一种面向对象的C语言 ,在Objective-C的代码中可以有C和C+语句,它可 以调用C的函数,也可以通过C+对象访问方法。 l字符串:Objective-C通常不使用C语言风格的字符串 。大多数情况下是使用Foundation框架的NSString 类型的字符串。NSString类提供了字符串的类包装, 支持Unicode,printf风格的格式化工具等等。它是在 普通的双引号字符串前放置一个符号,如下面的例 子所示: l NSString* myString = “My Stringn“; Objective-C语言特点 l类:Objective-C是一种面向对象的语言,定义 类是它的基本能力。Objective-C的类声明和实 现包括两个部分:接口部分和实现部分。不允许 多继承。 l方法:Objective-C是一种面向对象的语言,定 义方法也是它的基本能力。Objective-C中方法 不是在“.”运算符,而是采用“”运算符。有时候 方法调用也称为:消息发送。 l属性:属性是Objective-C 2.0提出的概念,它是 替代对成员变量访问的“读取方法(getter)”和“ 设定方法(setter)”的手段,为了对类进行封装 一般情况下不直接访问成员变量,而是通过属性 访问。 Objective-C语言特点 l协议:Objective-C中的协议类似于Java中的接 口或C+的纯虚类,只有接口部分定义没有实现 部分,即只有h文件没有m文件。 l分类:Objective-C中的分类是类似与继承机制 ,通过分类能够扩展父类的功能。 Objective-C语言特点 lObjective-C是非常”实用”的语言,它使用一个 用c写成的很小的运行库,oc写成的程序通常不 会比其源代码和函数库大太多。 lObjective-C可以在现存C编译器基础上实现, 而不需要编写一个全新的编译器,这个特性使得 oc能利用大量现存的c代码、库、工具和编程思 想等资源。 Objective-C语言特点 l不支持命名空间机制(namespace mechanism) 。取而代之的是程序开发者必须在其类别名称加 上前缀,由于前缀往往较短(相对命名空间), 这经常引致冲突,在2007年,在Cocoa编程环境 中,所有Mac OS X类别和函数均有“NS”作为前 缀,例如NSObject来分辨他们属于Mac OS X核 心;使用“NS”是由于这些类别的名称在 NeXTSTEP开发定下的。 Foundation工具包 l简称为“Foundation”,首先出现在OpenStep中 。在Mac OS X中,它是基于Core Foundation 的。作为通用的面向对象的函数库, Foundation提供了字符串,数值的管理,容器 及其枚举,分布式计算,事件循环,以及一些其 它的与图形用户界面没有直接关系的功能。其中 用于类和常数的“NS”前缀来自于Cocoa的来源, NeXTSTEP。它可以在Mac OS X和iOS中使用 。 Cocoa简介 lCocoa是苹果公司的面向对象的开发环境,该环 境下的任何类都要继承自NSObject(只有这样 ,该类的对象才可以获得运行时的基本能力); lCocoa的主要开发语言是Objective-C; lCocoa包含两个核心框架:Foundation框架和 Appkit框架。 lAppKit(Application Kit)是直接衍生自 NeXTSTEP的AppKit的。它包含了程序与图形 用户界面交互所需的代码,它是基于 Foundation建立的,也使用“NS”前缀。它只能 在Mac OS X中使用。 Cocoa Touch简介 lCocoa Touch包含两个框架:Foundation框架 和UIKit框架。 l由苹果公司提供的软件开发API,用于开发 iphone/ipod/ipad上的软件。也是苹果公司针对 iPhone应用程序快速开发提供的一个类库。此 库以一系列框架库的形式存在,支持开发人员使 用用户界面元素构建图像化的事件驱动的应用程 序。 Cocoa Touch简介 lCocoa Touch 框架推动了ios 应用程序的开发, 为开发者提供了很多 Mac 平台上久经考验的模 式,同时又特别专注于基于触摸的开发接口和性 能优化。其中,UIKit 提供了开发 iOS 上的图 形化事件驱动程序所需的基本工具。 liOS 独特的界面意味着 Cocoa Touch 具有同样 独特的设计。通过 UIKit,可以访问 iOS 上特 殊的 GUI 控制、按钮和全屏幕视图;还可以通 过加速计和 Multi-Touch 手势控制应用程序。 Objective-C开发工具 l苹果软件的开发需要在MAC OS X环境下进行, 集成开发环境为XCODE,当前支持IPHONE4 的开发版本为4.2以上,我们实验室版本4.6.X。 lIOS是MAC操作系统的一个子集。 lMAC系统不同,所支持的XCODE版本不同, 请看好类型后再下载。 lMAC系统有中文版本,但是XCODE没有中文 开发版本,所以 lXcode:是苹果公司的集成开发环境的发动机, 它负责绝大多数的开发工作 lInteface Builder:它是一个用于创建用户界面的 图形工具; liphone模拟器:当临时查看效果时,可以很方便 地使用模拟器进行查看; l在开发中,Xcode与Inteface Builder是紧密结合 的。 iphone模拟器Inteface Builder Xcode Xcode开发工具 XCODE欢迎界面 Xcode开发工具 XCODE创建项目界面 Xcode开发工具 XCODE运行界面 例1:第一个OC程序- Hello, World #import int main(int argc, const char * argv) autoreleasepool / insert code here. NSLog(“Hello, World!“); return 0; 程序说明 l#import l告诉编译器导入Foundation框架中的 Foundation.h主头文件。 l在 Objective-C 中,#import 被当成 #include 指令的改良版本来使用。除此之外,#import 确 定一个文件只能被导入一次,这使你在递归包含 中不会出现问题。 l使用哪一个还是由用户来决定。一般来说,在导 入 Objective-C 头文件的时候使用 #import,包 含 C 头文件时使用 #include。 程序说明 lint main(int argc, const char * argv) l每一个程序有且只有一个main函数,表示程序 将在何处开始执行,即程序的开始执行位置。 lreturn 0; l0:程序正常 l非0:通常表示出现了一些问题(如:很可能无法 找到程序所需的文件) 程序说明 lautoreleasepool l自动释放池,用于内存管理 程序说明 l/ insert code here. l注释 l单行注释:使用连续的斜杠(/) l多行注释:使用/*开头,*/结尾 l不能嵌套使用 l好处 l比较清晰的指出该断程序用意 l有利于团队合作,有利于后期的代码维护 l程序编译时,不对注释做任何处理; 程序说明 lNSLog(“Hello, World!“); lNSLog是Objective-C库中的一个函数 l作用:向控制台输出文本内容,附带显示内容: 执行的时间、程序名等等 lNSString对象 l符号在位于一对双引号的字符串前面 l注意: lObjective-C大小写敏感; l程序语句必须以(;)结束 常见扩展名 扩扩展名展名含含义义 .h头文件 .cc语言源文件 .cpp .ccc+语言的源文件 .mObjective-C的源文件 .mmObjective-C+的源文件 例2:计算50和20的和 #import int main (int argc, const char * argv) autoreleasepool int sum ; sum = 50+20; NSLog(“50+20=%d“,sum); return 0; l常量:程序运行过程中,值不能被改变的量称为常量 。如:1, -1, 2.5,c等等。 l变量:是一段有名字的连续存储空间。在源代码中通 过定义变量来申请并命名这样的存储空间,并通过变 量的名字来使用这段存储空间。 变量是程序中数据的 临时存放场所。如:int sum; l变量应该有名字,变量命名规范: la-z, A-Z, 0-9, _; l首字母不能是数字; l不可以用系统保留字; l比较推荐的命名规范; l首字母一般小写; l关键字:已经定义好的,具有特殊意义和用途的 标识符,又称“保留字”。如:int, float, id,if, for,continue, return,interface, self, super , implementation,public, private等 l数据类型: int, float, double, BOOL, char, NSString,id, nil, SEL等; l运算符 l算术运算符 ( ) l关系运算符 ( = int main (int argc, const char * argv)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年铁氧体粘结永磁磁粉项目发展计划
- 机场招聘笔试题及答案
- 东北方言考试及答案
- 2025年工程和技术研究与试验发展服务项目建议书
- 2025年中医拔火罐考试题及答案
- 成都消防知识培训课件
- 2025年助班竞选考试题及答案
- 情绪能量管理课件
- 宿迁化学中考试卷及答案
- 公务员管理证考试题及答案
- 离婚协议书正规打印电子版(2025年版)
- 《 大学生军事理论教程》全套教学课件
- 金融统计分析教材课件
- 《社会主义核心价值观》优秀课件
- 《标准教程HSK5上》第1课《爱的细节》课件
- 经纬度基础知识
- DDI定向井难度系数
- 河南省家庭经济困难学生认定申请表
- 电催化精品课件
- 踏虎凿花的探究 详细版课件
- (高职)成本核算与管理完整版教学课件全套电子教案
评论
0/150
提交评论