大家好,小编精选为大家解答以上问题,objective c怎么学,objective c教程很多人还不知道,现在让我们一起来看看吧!
1、 objective-c基础课程是很多朋友关心的话题。Objective-C是一种简单的计算机语言,旨在支持真正的面向对象编程。
2、 Objective-C通过提供类定义、方法和属性的语法以及其他可以提高类的动态扩展能力的结构,扩展了标准的ANSI C语言。类的语法和设计主要基于最早的面向对象编程语言之一Smalltalk。
3、 如果您以前使用过其他面向对象编程语言,那么下面的信息可以帮助您学习Objective-C的基本语法。许多传统的面向对象概念,如封装、继承和多态性,都在Objective-C中体现。这里有一些重要的差异,但这些差异将在本文中显示,如果您需要,还有更详细的信息。
4、 如果你从未用任何编程语言编写过程序,那么在开始之前,你至少应该知道一些基本的概念。对象的使用和对象对象架构是iPhone程序设计的基础。理解它们如何相互作用对于创建你的程序是非常重要的。要理解面向对象的概念,请参考Objective-C的面向对象编程。
5、 objective-c的基础教程——Objective-C的超集
6、 Objective-Objective-C是C语言的严格超集——任何C语言程序都可以直接通过Objective-C编译器,无需修改,在Objective-C中使用C语言代码是完全合法的,Objective-C被描述为C语言上的一个薄薄的层,因为Objective-C的初衷是在C语言的主体中加入面向对象的特性。
7、 Objective-c基础教程-Objective-C代码的文件扩展名
8、 当需要在源代码中包含头文件时,可以使用标准的#include编译选项,但是Objective-C提供了更好的方法。#import选项与#include选项完全相同,只是它确保同一文件只被包含一次。Objective-C的例子和文档倾向于使用#import,你的代码应该是一样的。
9、 目标-c基础教程-语法
10、 Objective-C的面向对象语法源于Smalltalk消息传递风格。其他所有非面向对象的语法,包括变量类型、预处理、流程控制、函数声明和调用,都与C语言完全一致。但是,C语言语法中的一些合法代码在objective-c中并不一定具有相同的含义,比如有些布尔表达式在C语言中返回值为true,但如果直接与Objective-C中的yes进行比较,函数就会出错,因为Objective-C中yes的值只表示为1。
11、 第一个目标C程序,基于Xcode 4.3.1:
12、 目标-c基础教程-消息传递
13、 Objective-C最大的特点是继承了Smalltalk的消息传递模型,与当今C的主流风格大相径庭。在Objective-C中,对象相互传递消息比相互调用方法更准确。两种风格的主要区别在于调用方法/消息传递的动作。C中的类别和方法之间的关系非常清楚。一个方法必须属于一个类别,并且在编译时被紧密绑定。调用一个不存在于类别中的方法是不可能的。然而,在Objective-C中,类别和消息之间的关系是松散的。调用方法被视为向对象发送消息,所有方法都被视为对消息的响应。直到运行时才会动态地确定所有的消息处理,并且将由类来决定如何处理接收到的消息。也就是说,类别不保证它会对收到的消息做出响应。如果类别接收到未处理的消息,程序只会抛出异常,而不会出错或崩溃。
14、 c,向对象发送消息(或调用方法)的语法如下:
15、 典型的C含义解释是‘调用car类的fly方法’。如果在car类中没有定义fly方法,编译肯定会失败。但在Objective-C中,我们应该把它解释为‘发送消息向汽车对象提交一只苍蝇’。苍蝇是信息,汽车是信息的接收者。收到消息后,car将决定如何回复此消息。如果在car类别中定义了一个fly方法,将运行该方法中的代码。如果car中没有fly方法,程序仍然可以编译,运行时会抛出异常。
16、 这两种风格各有利弊。c强制所有方法都有对应的动作,编译时绑定使得函数调用非常快。缺点是虚拟关键字只能提供有限的动态绑定能力。Objective-C天生具有鸭式动态绑定能力,因为运行时只处理消息,允许未知消息发送给对象。你可以向整个对象集合发送消息,而不需要逐个检查每个对象的类型,而且你还有一个消息转发机制。同时,空对象nil在接收到消息后默认不做任何事情,所以你不用担心在向nil发送消息时程序崩溃。
17、 目标-c基础教程-字符串
18、 作为C语言的超集,Objective-C支持C语言字符串的约定。也就是说,引用单个字符。
19、objective-c基础教程--类
20、 如同所有其他的面向对象语言,类是 Objective-C 用来封装数据,以及操作数据的行为的基础结构。对象就是类的运行期间实例,它包含了类声明的实例变量自己的内存拷贝,以及类成员的指针。Objective-C 的类规格说明包含了两个部分:定义(interface)与实现(implementation)。定义(interface)部分包含了类声明和实例变量的定义,以及类相关的方法。实现(implementation)部分包含了类方法的实际代码。
21、 下图展现了声明一个叫做 MyClass 的类的语法,这个类继承自 NSObject 基础类。类声明总是由 @interface 编译选项开始,由 @end 编译选项结束。类名之后的(用冒号分隔的)是父类的名字。类的实例(或者成员)变量声明在被大括号包含的代码块中。实例变量块后面就是类声明的方法的列表。每个实例变量和方法声明都以分号结尾。
22、 类的定义文件遵循C语言之惯例以.h为后缀,实现文件以.m为后缀。
23、 类声明图
24、objective-c基础教程--Interface
25、 定义部分,清楚定义了类的名称、数据成员和方法。 以关键字@interface作为开始,@end作为结束。
26、 方法前面的 +/- 号代表函数的类型:加号(+)代表类方法(class method),不需要实例就可以调用,与C++ 的静态函数(static member function)相似。减号(-)即是一般的实例方法(instance method)。
27、 这里提供了一份意义相近的C++语法对照,如下:
28、 Objective-C定义一个新的方法时,名称内的冒号(:)代表参数传递,不同于C语言以数学函数的括号来传递参数。Objective-C方法使得参数可以夹杂于名称中间,不必全部附缀于方法名称的尾端,可以提高程序可读性。设定颜色RGB值的方法为例:
29、 这个方法的签名是setColorToRed:Green:Blue:。每个冒号后面都带着一个float类别的参数,分别代表红,绿,蓝三色。
30、 以上就是简单的objective-c基础教程介绍,希望对大家有所帮助。
本文讲解到此结束,希望对大家有所帮助。