




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Objective-C程序设计,第1讲 Objective-C 简介,本章目标,了解Objective-C语言 了解Objective-C的特点 了解Cocoa相关框架 掌握Xcode开发工具 理解Objective-C程序的基本结构,Objective-C语言简介,作为编程语言来说,Objective-C有悠久的历史。20世纪80年代初, Brad Cox和Tom Love 以SmallTalk-80语言为基础发明了Objective-C。 Objective-C在C语言的基础上添加了扩展,成为了能够创建和操作对象的一门新的程序设计语言。 1988年,苹果公司前CEO乔布斯的NeXT Com
2、puter公司获得了Objective-C语言的授权,并开发出了Objective-C的语言库和一个名为NEXTSTEP的开发环境。 1992年自由软件基金会的GNU支持Objective-C。,Objective-C语言简介,1994年, NeXT Computer和Sun Microsystem联合发布一个针对NEXTSTEP系统的标准典范OPENSTEP。 1996年12月20日,苹果公司收购NeXT Software公司, NEXTSTEP/OPENSTEP环境成为苹果操作系统主要发行版本OS X的基础。这个版本的开发环境被苹果公司称为Cocoa。 2006年7月,苹果发布Object
3、ive-C 2.0,增加了垃圾收集(只支持OS X系统)、属性、快速枚举等语法功能,改进了运行时性能,并添加了对64位系统的支持。,Objective-C语言特点,Objective-C与其它面向对象语言有一些明显的不同,它有这自己鲜明的特色: 兼容性:Objective-C可以说是一种面向对象的C语言,在Objective-C的代码中可以有C和C+语句,它可以调用C的函数,也可以通过C+对象访问方法。 字符串:Objective-C通常不使用C语言风格的字符串。大多数情况下是使用Foundation框架的NSString类型的字符串。NSString类提供了字符串的类包装,支持Unicode
4、,printf风格的格式化工具等等。它是在普通的双引号字符串前放置一个符号,如下面的例子所示: NSString* myString = My Stringn;,Objective-C语言特点,类:Objective-C是一种面向对象的语言,定义类是它的基本能力。Objective-C的类声明和实现包括两个部分:接口部分和实现部分。不允许多继承。 方法:Objective-C是一种面向对象的语言,定义方法也是它的基本能力。Objective-C中方法不是在“.”运算符,而是采用“”运算符。有时候方法调用也称为:消息发送。 属性:属性是Objective-C 2.0提出的概念,它是替代对成员变量
5、访问的“读取方法(getter)”和“设定方法(setter)”的手段,为了对类进行封装一般情况下不直接访问成员变量,而是通过属性访问。,Objective-C语言特点,协议:Objective-C中的协议类似于Java中的接口或C+的纯虚类,只有接口部分定义没有实现部分,即只有h文件没有m文件。 分类:Objective-C中的分类是类似与继承机制,通过分类能够扩展父类的功能。,Objective-C语言特点,Objective-C是非常”实用”的语言,它使用一个用c写成的很小的运行库,oc写成的程序通常不会比其源代码和函数库大太多。 Objective-C可以在现存C编译器基础上实现,而不
6、需要编写一个全新的编译器,这个特性使得oc能利用大量现存的c代码、库、工具和编程思想等资源。,Objective-C语言特点,不支持命名空间机制(namespace mechanism)。取而代之的是程序开发者必须在其类别名称加上前缀,由于前缀往往较短(相对命名空间),这经常引致冲突,在2007年,在Cocoa编程环境中,所有Mac OS X类别和函数均有“NS”作为前缀,例如NSObject来分辨他们属于Mac OS X核心;使用“NS”是由于这些类别的名称在NeXTSTEP开发定下的。,Foundation工具包,简称为“Foundation”,首先出现在OpenStep中。在Mac OS
7、 X中,它是基于Core Foundation的。作为通用的面向对象的函数库,Foundation提供了字符串,数值的管理,容器及其枚举,分布式计算,事件循环,以及一些其它的与图形用户界面没有直接关系的功能。其中用于类和常数的“NS”前缀来自于Cocoa的来源,NeXTSTEP。它可以在Mac OS X和iOS中使用。,Cocoa简介,Cocoa是苹果公司的面向对象的开发环境,该环境下的任何类都要继承自NSObject(只有这样,该类的对象才可以获得运行时的基本能力); Cocoa的主要开发语言是Objective-C; Cocoa包含两个核心框架:Foundation框架和Appkit框架。
8、 AppKit(ApplicationKit)是直接衍生自NeXTSTEP的AppKit的。它包含了程序与图形用户界面交互所需的代码,它是基于Foundation建立的,也使用“NS”前缀。它只能在Mac OS X中使用。,Cocoa Touch简介,Cocoa Touch包含两个框架:Foundation框架和UIKit框架。 由苹果公司提供的软件开发API,用于开发 iphone/ipod/ipad上的软件。也是苹果公司针对iPhone应用程序快速开发提供的一个类库。此库以一系列框架库的形式存在,支持开发人员使用用户界面元素构建图像化的事件驱动的应用程序。,Cocoa Touch简介,Co
9、coa Touch 框架推动了ios应用程序的开发,为开发者提供了很多 Mac 平台上久经考验的模式,同时又特别专注于基于触摸的开发接口和性能优化。其中,UIKit 提供了开发 iOS 上的图形化事件驱动程序所需的基本工具。 iOS 独特的界面意味着 Cocoa Touch 具有同样独特的设计。通过 UIKit,可以访问 iOS 上特殊的 GUI 控制、按钮和全屏幕视图;还可以通过加速计和 Multi-Touch 手势控制应用程序。,Objective-C开发工具,苹果软件的开发需要在MAC OS X环境下进行,集成开发环境为XCODE,当前支持IPHONE4的开发版本为4.2以上,我们实验室
10、版本4.6.X。 IOS是MAC操作系统的一个子集。 MAC系统不同,所支持的XCODE版本不同,请看好类型后再下载。 MAC系统有中文版本,但是XCODE没有中文开发版本,所以,Xcode:是苹果公司的集成开发环境的发动机,它负责绝大多数的开发工作 Inteface Builder:它是一个用于创建用户界面的图形工具; iphone模拟器:当临时查看效果时,可以很方便地使用模拟器进行查看; 在开发中,Xcode与Inteface Builder是紧密结合的。,iphone模拟器,Inteface Builder,Xcode,Xcode开发工具,XCODE欢迎界面,Xcode开发工具,XCOD
11、E创建项目界面,Xcode开发工具,XCODE运行界面,例1:第一个OC程序- Hello, World,#import int main(int argc, const char * argv) autoreleasepool / insert code here. NSLog(Hello, World!); return 0; ,程序说明,#import 告诉编译器导入Foundation框架中的Foundation.h主头文件。 在 Objective-C 中,#import 被当成 #include指令的改良版本来使用。除此之外,#import 确定一个文件只能被导入一次,这使你在递归
12、包含中不会出现问题。 使用哪一个还是由用户来决定。一般来说,在导入 Objective-C 头文件的时候使用 #import,包含 C 头文件时使用 #include。,程序说明,int main(int argc, const char * argv) 每一个程序有且只有一个main函数,表示程序将在何处开始执行,即程序的开始执行位置。 return 0; 0:程序正常 非0:通常表示出现了一些问题(如:很可能无法找到程序所需的文件),程序说明,autoreleasepool 自动释放池,用于内存管理,程序说明,/ insert code here. 注释 单行注释:使用连续的斜杠(/) 多
13、行注释:使用/*开头,*/结尾 不能嵌套使用 好处 比较清晰的指出该断程序用意 有利于团队合作,有利于后期的代码维护 程序编译时,不对注释做任何处理;,程序说明,NSLog(Hello, World!); NSLog是Objective-C库中的一个函数 作用:向控制台输出文本内容,附带显示内容:执行的时间、程序名等等 NSString对象 符号在位于一对双引号的字符串前面 注意: Objective-C大小写敏感; 程序语句必须以(;)结束,常见扩展名,例2:计算50和20的和,#import int main (int argc, const char * argv) autoreleas
14、epool int sum ; sum = 50+20; NSLog(“50+20=%d,sum); return 0; ,常量:程序运行过程中,值不能被改变的量称为常量。如:1, -1, 2.5,c等等。 变量:是一段有名字的连续存储空间。在源代码中通过定义变量来申请并命名这样的存储空间,并通过变量的名字来使用这段存储空间。 变量是程序中数据的临时存放场所。如:int sum; 变量应该有名字,变量命名规范: a-z, A-Z, 0-9, _; 首字母不能是数字; 不可以用系统保留字; 比较推荐的命名规范; 首字母一般小写;,关键字:已经定义好的,具有特殊意义和用途的标识符,又称“保留字”。如:int, float, id,if, for,continue, return,interface, self, super, implementation,public, private等 数据类型: int, float, double, BOOL, char, NSString,id, nil, SEL等;,运算符 算术运算符 ( ) 关系运算符 ( = = 逻辑运算符 (! N
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司珠宝营销策划方案
- 国际经济与贸易课程考试卷及答案2025年
- 法医职称考试的主要试题及答案
- 2025年薪酬与福利管理师考试试卷及答案
- 2025年医师资格考试试题及答案
- 2025年医疗费用控制人员职称考试试卷及答案
- 2025年文化产业管理师考试卷及答案
- 2025年文化产业管理专业复习考试试卷及答案
- 2025年社会工作者职业资格考试试题及答案
- 2025年社会文化研究生入学考试试卷及答案
- 2025年苏教版科学六年级下册小升初期末检测题附答案
- 电力安全事故隐患排查
- 【MOOC】人工智能基础-科技大学 中国大学慕课MOOC答案
- 滁州康华电子材料有限公司(5G 基站)集成线路板相关材料项目环境影响报告书
- DB4401-T 102.1-2020 建设用地土壤污染防治+第1部分:污染状况调查技术规范-(高清现行)
- 农业产业园可行性研究报告
- 实验2:基本数据类型、运算符与表达式
- 常州建筑水电安装施工专项方案
- 增强教师职业认同感、荣誉感、幸福感-课件
- Q∕GDW 12130-2021 敏感用户接入电网电能质量技术规范
- 幼儿园大班绘本:《没有牙齿的大老虎》 PPT课件
评论
0/150
提交评论