




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本章目标了解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 Computer公司获得了Objective-C语言的授权,并开发出了Objective-
2、C的语言库和一个名为NEXTSTEP的开发环境。1992年自由软件基金会的GNU支持Objective-C。 Objective-C语言简介1994年, NeXT Computer和Sun Microsystem联合发布一个针对NEXTSTEP系统的标准典范OPENSTEP。2019年12月20日,苹果公司收购NeXT Software公司, NEXTSTEP/OPENSTEP环境成为苹果操作系统主要发行版本OS X的基础。这个版本的开发环境被苹果公司称为Cocoa。2019年7月,苹果发布Objective-C 2.0,增加了垃圾收集(只支持OS X系统)、属性、快速枚举等语法功能,改进了运
3、行时性能,并添加了对64位系统的支持。Objective-C语言特点Objective-C与其它面向对象语言有一些明显的不同,它有这自己鲜明的特色:兼容性:Objective-C可以说是一种面向对象的C语言,在Objective-C的代码中可以有C和C+语句,它可以调用C的函数,也可以通过C+对象访问方法。 字符串:Objective-C通常不使用C语言风格的字符串。大多数情况下是使用Foundation框架的NSString类型的字符串。NSString类提供了字符串的类包装,支持Unicode,printf风格的格式化工具等等。它是在普通的双引号字符串前放置一个符号,如下面的例子所示:NS
4、String* myString = My Stringn;Objective-C语言特点类:Objective-C是一种面向对象的语言,定义类是它的基本能力。Objective-C的类声明和实现包括两个部分:接口部分和实现部分。不允许多继承。方法:Objective-C是一种面向对象的语言,定义方法也是它的基本能力。Objective-C中方法不是在“.”运算符,而是采用“”运算符。有时候方法调用也称为:消息发送。 属性:属性是Objective-C 2.0提出的概念,它是替代对成员变量访问的“读取方法(getter)”和“设定方法(setter)”的手段,为了对类进行封装一般情况下不直接访
5、问成员变量,而是通过属性访问。 Objective-C语言特点协议:Objective-C中的协议类似于Java中的接口或C+的纯虚类,只有接口部分定义没有实现部分,即只有h文件没有m文件。 分类:Objective-C中的分类是类似与继承机制,通过分类能够扩展父类的功能。 Objective-C语言特点Objective-C是非常”实用”的语言,它使用一个用c写成的很小的运行库,oc写成的程序通常不会比其源代码和函数库大太多。Objective-C可以在现存C编译器基础上实现,而不需要编写一个全新的编译器,这个特性使得oc能利用大量现存的c代码、库、工具和编程思想等资源。Objective-
6、C语言特点不支持命名空间机制(namespace mechanism)。取而代之的是程序开发者必须在其类别名称加上前缀,由于前缀往往较短(相对命名空间),这经常引致冲突,在2019年,在Cocoa编程环境中,所有Mac OS X类别和函数均有“NS”作为前缀,例如NSObject来分辨他们属于Mac OS X核心;使用“NS”是由于这些类别的名称在NeXTSTEP开发定下的。Foundation工具包简称为“Foundation”,首先出现在OpenStep中。在Mac OS X中,它是基于Core Foundation的。作为通用的面向对象的函数库,Foundation提供了字符串,数值的管
7、理,容器及其枚举,分布式计算,事件循环,以及一些其它的与图形用户界面没有直接关系的功能。其中用于类和常数的“NS”前缀来自于Cocoa的来源,NeXTSTEP。它可以在Mac OS X和iOS中使用。 Cocoa简介Cocoa是苹果公司的面向对象的开发环境,该环境下的任何类都要继承自NSObject(只有这样,该类的对象才可以获得运行时的基本能力);Cocoa的主要开发语言是Objective-C;Cocoa包含两个核心框架:Foundation框架和Appkit框架。AppKit(ApplicationKit)是直接衍生自NeXTSTEP的AppKit的。它包含了程序与图形用户界面交互所需的
8、代码,它是基于Foundation建立的,也使用“NS”前缀。它只能在Mac OS X中使用。 Cocoa Touch简介Cocoa Touch包含两个框架:Foundation框架和UIKit框架。由苹果公司提供的软件开发API,用于开发 iphone/ipod/ipad上的软件。也是苹果公司针对iPhone应用程序快速开发提供的一个类库。此库以一系列框架库的形式存在,支持开发人员使用用户界面元素构建图像化的事件驱动的应用程序。Cocoa Touch简介Cocoa Touch 框架推动了ios应用程序的开发,为开发者提供了很多 Mac 平台上久经考验的模式,同时又特别专注于基于触摸的开发接口
9、和性能优化。其中,UIKit 提供了开发 iOS 上的图形化事件驱动程序所需的基本工具。iOS 独特的界面意味着 Cocoa Touch 具有同样独特的设计。通过 UIKit,可以访问 iOS 上特殊的 GUI 控制、按钮和全屏幕视图;还可以通过加速计和 Multi-Touch 手势控制应用程序。Objective-C开发工具苹果软件的开发需要在MAC OS X环境下进行,集成开发环境为XCODE,当前支持IPHONE4的开发版本为4.2以上,我们实验室版本4.6.X。IOS是MAC操作系统的一个子集。MAC系统不同,所支持的XCODE版本不同,请看好类型后再下载。MAC系统有中文版本,但是X
10、CODE没有中文开发版本,所以Xcode:是苹果公司的集成开发环境的发动机,它负责绝大多数的开发工作Inteface Builder:它是一个用于创建用户界面的图形工具;iphone模拟器:当临时查看效果时,可以很方便地使用模拟器进行查看;在开发中,Xcode与Inteface Builder是紧密结合的。iphone模拟器Inteface BuilderXcodeXcode开发工具XCODE欢迎界面Xcode开发工具XCODE创建项目界面Xcode开发工具XCODE运行界面例1:第一个OC程序- Hello, World#import int main(int argc, const cha
11、r * argv) autoreleasepool / insert code here. NSLog(Hello, World!); return 0;程序说明#import 告诉编译器导入Foundation框架中的Foundation.h主头文件。在 Objective-C 中,#import 被当成 #include指令的改良版本来使用。除此之外,#import 确定一个文件只能被导入一次,这使你在递归包含中不会出现问题。使用哪一个还是由用户来决定。一般来说,在导入 Objective-C 头文件的时候使用 #import,包含 C 头文件时使用 #include。程序说明int ma
12、in(int argc, const char * argv)每一个程序有且只有一个main函数,表示程序将在何处开始执行,即程序的开始执行位置。return 0;0:程序正常非0:通常表示出现了一些问题(如:很可能无法找到程序所需的文件)程序说明autoreleasepool自动释放池,用于内存管理程序说明/ insert code here.注释单行注释:使用连续的斜杠(/)多行注释:使用/*开头,*/结尾不能嵌套使用好处比较清晰的指出该断程序用意有利于团队合作,有利于后期的代码维护程序编译时,不对注释做任何处理;程序说明NSLog(Hello, World!);NSLog是Objecti
13、ve-C库中的一个函数作用:向控制台输出文本内容,附带显示内容:执行的时间、程序名等等NSString对象符号在位于一对双引号的字符串前面注意:Objective-C大小写敏感;程序语句必须以(;)结束常见扩展名扩展名含义.h头文件.cc语言源文件.cpp c+语言的源文件.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
14、0;常量:程序运行过程中,值不能被改变的量称为常量。如:1, -1, 2.5,c等等。变量:是一段有名字的连续存储空间。在源代码中通过定义变量来申请并命名这样的存储空间,并通过变量的名字来使用这段存储空间。 变量是程序中数据的临时存放场所。如:int sum; 变量应该有名字,变量命名规范:a-z, A-Z, 0-9, _;首字母不能是数字;不可以用系统保留字;比较推荐的命名规范;首字母一般小写;关键字:已经定义好的,具有特殊意义和用途的标识符,又称“保留字”。如:int, float, id,if, for,continue, return,interface, self, super, i
15、mplementation,public, private等数据类型: int, float, double, BOOL, char, NSString,id, nil, SEL等;运算符算术运算符 ( )关系运算符 ( = =逻辑运算符 (! & |)条件运算符 (? :)求字节数运算符 (sizeof)自增、自减运算符 (+ -) 赋值运算符 (=)格式化输出字符字符形式类型%dint%cchar%ffloat%对象转义字符及其作用字符形式含义”双引号单引号n换行t水平制表符反斜线例3:下面两个程序输出结果是否相同#import int main (int argc, const char * ar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年深海矿产资源勘探技术深海矿产资源勘探技术装备研发与培训与考核报告
- 2025年航空货运市场格局分析与发展战略研究报告
- 篮球场合同合作合同范本
- 粪肥运输合同协议书模板
- 电池置换合同协议书模板
- 门窗厂投资入股合同范本
- 生产经营权转让合同范本
- 精装房装修出租合同范本
- 高标农田服务协议书模板
- 江苏叉烧酱采购合同范本
- 浙江国企招聘2025宁波慈溪市国有企业公开招聘公交驾驶员25人笔试参考题库附带答案详解版
- 2025年省国有资本运营控股集团有限公司人员招聘笔试备考试题及答案详解(名校卷)
- 2025村后备干部考试题库(含答案)
- 2025年辅警招聘考试试题库完整答案
- 《电工技能与实训》校本教材
- 技术水平评价报告【范本模板】
- 宿州萧县乡镇事业单位招聘考试真题2024
- 安全生产考核巡查办法全文
- 2025至2030临床决策支持系统行业项目调研及市场前景预测评估报告
- 黑启动操作培训课件
- 肿瘤的健康科普
评论
0/150
提交评论