objective-c语言基础

上传人:san****019 文档编号:70008361 上传时间:2019-01-15 格式:PPT 页数:34 大小:2.42MB
返回 下载 相关 举报
objective-c语言基础_第1页
第1页 / 共34页
objective-c语言基础_第2页
第2页 / 共34页
objective-c语言基础_第3页
第3页 / 共34页
objective-c语言基础_第4页
第4页 / 共34页
objective-c语言基础_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《objective-c语言基础》由会员分享,可在线阅读,更多相关《objective-c语言基础(34页珍藏版)》请在金锄头文库上搜索。

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

7、OS X中,它是基于Core Foundation的。作为通用的面向对象的函数库,Foundation提供了字符串,数值的管理,容器及其枚举,分布式计算,事件循环,以及一些其它的与图形用户界面没有直接关系的功能。其中用于类和常数的“NS”前缀来自于Cocoa的来源,NeXTSTEP。它可以在Mac OS X和iOS中使用。,Cocoa简介,Cocoa是苹果公司的面向对象的开发环境,该环境下的任何类都要继承自NSObject(只有这样,该类的对象才可以获得运行时的基本能力); Cocoa的主要开发语言是Objective-C; Cocoa包含两个核心框架:Foundation框架和Appkit框

8、架。 AppKit(Application Kit)是直接衍生自NeXTSTEP的AppKit的。它包含了程序与图形用户界面交互所需的代码,它是基于Foundation建立的,也使用“NS”前缀。它只能在Mac OS X中使用。,Cocoa Touch简介,Cocoa Touch包含两个框架:Foundation框架和UIKit框架。 由苹果公司提供的软件开发API,用于开发 iphone/ipod/ipad上的软件。也是苹果公司针对iPhone应用程序快速开发提供的一个类库。此库以一系列框架库的形式存在,支持开发人员使用用户界面元素构建图像化的事件驱动的应用程序。,Cocoa Touch简介

9、,Cocoa 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开发工具,

11、XCODE创建项目界面,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) a

14、utoreleasepool 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, _; 首字母不能是数字; 不可以用系统保留字; 比较推荐的命名规范; 首字母一般小写;,关键字:已经定义好的,具有特殊意义和用途的标识

15、符,又称“保留字”。如:int, float, id,if, for,continue, return,interface, self, super, implementation,public, private等 数据类型: int, float, double, BOOL, char, NSString,id, nil, SEL等;,运算符 算术运算符 ( ) 关系运算符 ( = = 逻辑运算符 (! & |) 条件运算符 (? :) 求字节数运算符 (sizeof) 自增、自减运算符 (+ -) 赋值运算符 (=),格式化输出字符,转义字符及其作用,例3:下面两个程序输出结果是否相同,#import int main (int argc, const char * argv) autoreleasepool NSLog(“Testing“); NSLog(“1“); NSLog(“.2“); NSLog(“3“); return 0; ,#import int main (int argc, const char * argv) autoreleasepool NSLog(“nTesting.n1n.2n3“); return 0; ,作业,打印出100-200范围内的所有素数。 编写一个函数sort_test(),能实现任何整型数组元素的排序(从小到大)。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号