Objective_C语言介绍及开发流程介绍
更新时间:2023-05-22 00:34:01 阅读量: 实用文档 文档下载
Objective_C入门及开发环境 Objective_C入门及开发环境 介绍柳行刚
Objective-C概述Objective-C是一种简单的计算机语言,它可以用来 设计复杂的面向对象程序。 Objective-C扩展了标准ANSI C语言,增加了一些定义类、方法以及其它结构的语法, 提升了类的动态扩展。 许多传统面向对象的思想,比如 封装、继承、多态,都会在Objective-C中体现。
Objective-C与C语方的关系Objective-C是C语言ANSI版本的超集, 支持和C相同的基本语法。用C代码,你可 以定义头文件和源码文件,以从详细实现 的代码中分离出公开的声明。
Objective-C代码的扩展名扩展名 文件类型
.h文件
头文件。头文件包含类、类型、函数、 常量的声明。
.m
源码文件。这是源码文件的典型扩展名, 可以包含Objective-C和C代码。
.mm
源码文件。使用该扩展名的源文件除了 Objective-C和C代码,还可以包含C++代 码。 该扩展名仅用于在你的Objective-C 代码中引用到的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 <UIApplicationDelegate, AnotherProtocol> { } @end 协议的声明看起来比较类似一个类的接口,不同的是协议没有父类也不能定义实体变量。 下面的例子展示了含有一个方法的简单协议: @protocol MyProtocol - (void)myProtocolMethod; @end
iPhone开发环境介绍硬件: 1.苹果电脑, 必须是基于Intel的Macintosh计算机。 2.iPhone或iPod Touch,主要用来测试编写好的程序。 软件: 1.苹果系统MacOS。 2.iPhone SDK(请从/iphone/下载最新版 SDK),SDK中包含苹果公司的集成开发环境Xcode,iPhone模拟器 及其它一些开发工具。 开发环境的简单介绍 开发环境主要包括 Xcode (主要开发工具) Interface Builder (界面快速设计工具) iPhone Simulator (iPhone模拟器) SDK(Software Development Kit,软件开发工具包)
正在阅读:
论文 - 图文05-10
琼瑶经典爱情语录02-07
一元一次方程的应用追及问题08-26
2学生练习语法部分时态和语态04-21
学习杨善洲精神做人民满意的好党员好干部07-23
简单人生02-13
关于江苏十二五规划纲要的学习体会08-28
安全施工措施与交通疏导围挡方案09-16
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 介绍
- Objective
- 流程
- 语言
- 开发
- Instruction of Dispatch Letter派遣函的内容及格式要求
- 艾科浦超纯水机操作规程
- 中国古代文学与历史练习题及参考答案
- 常用不锈钢带检验规程
- 西山区2009年上半年经济运行情况简要分析
- 企业办理单位数字证书UKey及使用流程
- 公共自行车智能管理系统工作总结报告
- 大学生职业生涯规划 第五讲职业生涯规划的步骤与方法
- 身边有趣的物理现象
- 刘澜:黄光裕管理与领导力的难题
- 个人与团队管理形成性考核册答案作业作业9
- 【工程师转正申请书范文】工程师转正申请书
- 9.2世界多极化:深入发展
- 第一次阶段性测试
- 重庆大学2012秋矩阵论考题及答案
- 人教版2015-2016学年一年级下册数学第一次月考试卷
- 从小儿体质论治过敏性紫癜
- 2014-2015学年度七年级下学期期中测试题数学试卷附答案
- 2014年春节放假期间煤矿安全保障措施
- C15057《公司债券发行与交易管理办法》修订情况及24号准则解读(下)100分答案