在学习了C和C++的相关知识后,我们就可以进入到ObjC的世界了,关于ObjC的由来的历史我们就不再进行追溯了,互联网上有大量的相关介绍,我们学习ObjC的目的就是进行IOS开发,因此首先,我们应该了解它的基本语法结构,有很多的语法知识我们在C中都是接触过的,因此我们开始介绍ObjC的时候就不在进行阐述了,有不明白的地方可以查阅相关网站或者文本资料。好了,我们开始ObjC的基础讲解吧……
ObjC有大量与C相同的语法结构,它是对C的一种拓展语言,更加的方便操作和应用。
程序的头文件和源文件的扩展名分别是.h 和.m。而C和C++的扩展名是.h和.cpp。程序的注释语法和C一样,在ObjC中的nil相当于NULL,ObjC中的YES 和 NO 相当于true 和 false。
这里再讲解一下YES 和 NO:
ObjC中提供BOOL类型,但是这个BOOL类型和C++中的不一样:在C++中一切非0值的东西都是true,而为0值的都为false。但是ObjC中1为true,并且被宏定义为YES,0为false并被宏定义为NO,所以,如果你将代码写出如下这样,则肯定是错误的:
BOOL areIntsDirfferent_faulty(int thing1, int thing2)
{
return (thing1, thing2);
}
if(areIntsDirfferent_faulty(23,5) == YES)
{
}
因为areIntsDirfferent_faulty方法返回的是两个整数的差,这个差不为1,那么永远不会YES。
下来我们看一下ObjC的程序结构:
#import<Foundation/Foundation.h>
int main(int argc, const char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog(@"Programming is fun!");
[pool drain];
return 0;
}
程序分析:
#import<Foundation/Foundation.h>
相当于#include导入头文件,也有两种查找方式<...>和”...“。导入该头文件是应为在程序结尾处用到的其他类和函数的有关信息。
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
这条语句为自动释放池在内存中保留了空间,就是在释放内存池的时候同时释放其中的对象,若对象要加入该池,只要发送一条autorelease消息即可。
NSLog(@"Programming is fun!");
这条语句将显示常量字符串,类似于printf函数,并且会自动在文件后添加'\n'。其中也可以使用转义字符。例如:
NSLog(@"The sum of 30 and 23 is %i",sum);
[pool drain];
//释放内存池
此格式是ObjC的标准格式:
[classOfInstance method];
classOfInstance是类的名称或者该类实例的名称,method是方法(消息)。
在这里提一个获得对象的方法:(从Car类获得其对象)
youCar = [Car new];
这里和C++的有点不同,需要注意!
另外定义一个新类分为两部分:
@interface 部分
描述类、类的数据成员部分和类的方法
@implementation 部分
实现这些方法的实际代码
@interface部分的一般格式:
@interface NewClassName : ParentClassName
{
memberDeclarations;
}
methodDeclarations;
@end
命名规则:以字母或者下划线开头,之后可以使任何字母,下划线或者0~9数组组合。
约定:类名必须以大写字母开头,实例变量、对象以及方法的名称以小写字母开始。
每次创建新的对象的时候,将同时创建一组新的实例对象且唯一。
注意:在对象类型的右边都有一个*号,左右的对象变量都是指针类型。ID类型已经被预定义为指针类型,所以不需要加一个*号。
函数开头部分的(-)号或者(+)号表示:
(-)号 表示该方法是实例方法(对类的特定势力执行一些操作);
(+)号 表示该方法是类的方法(即对类本身执行某些操作的方法,例如创建类的新实例等)
函数的声明示例:
-(void)setNumerator : (int) n
第一个表示方法的类型,返回类型,接着是方法名,方法接受的参数,参数的类型,参数名
注:如果不带参数则不适用”:“号
如果没有指定任何返回类型,那么默认是id类型,所有的输入参数默认也是id类型(id类型可用来引用任何类型的对象)。
注:无论在哪里,对象总是携带它的is a 的保护成员(可以用来确定对象所属的类),所以即使将它存储在id类型的通用对象变量中,也总是可以确定它的类的。
具有多个参数的方法:
-/+(return type) function_name : (parameter type)parameter1 otherParameter : (parameter_type)parameter2;
如果只有一个参数,在 : 号的后面声明参数的类型和名称;如果有多个参数,每个参数前面都要有一个 : ,然后接着是参数的类型和参数名称。
可能这样不好理解,我们看一个例子:
在C++中带参的函数声明如下:
void initializeRectangle(int x1, int y1, int y1, int y2);
但是这样声明有一个缺点,并不知道这些参数的具体含义;但是在ObjC中,可以这样声明:
void initalizeRectangle:(int)x1 LeftUpY:(int)y1 RightBottomX:(int)x2 RightBottomY:(int)y2;
这样声明就一目了然了,根据单词的大意就可以理解这些参数的含义了。
分享到:
相关推荐
Objective-C 基础语法 Objective-C 基础语法
本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...
Objective-C语言将决定尽可能的从编译和链接时推迟到运行时。只要有可能,Objective-C总是使用...本文档将具体介绍NSObject类以及Objective-C程序是如何和运行时系统交互的。特别地,本文档还给出来怎样在运行时动态地加
《objective-c程序设计》通过大量的实例系统地介绍了objective-c语言的基本概念、语法规则、框架、类库及开发环境。读者在阅读《objective-c程序设计》后,可以掌握objective-c语言的基本内容,并进行实际的iphone/...
本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...
Objective-C基础教程(入门教程).pdf
资源里面包含Objective-C 2.0程序设计 原书中文版第2版及代码,还包含Effective Objective-C 2.0英文版完整的电子书
语法基础——Objective-C语法基础.pdf
《Objective-C 程序设计(第4版)》作者假设读者没有面向对象程序语言或者C语言(Objective-C基础)编程经验,因此,初学者和有经验的程序员都可以使用这本《Objective-C 程序设计(第4版)》学习Objective-C。...
本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...
Objective-C基础教程:1天玩转Objective-C语法
Objective-C 基础语法学习项目
《Objective-C基础教程》结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的...
《Objective-C基础教程》结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的...
资源名称:Objective-C基础教程(第2版) 资源截图在: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
通过学习Objective-C的基本语法、类和对象、控制流程和方法等内容,你将能够编写简单的Objective-C程序并逐渐掌握更复杂的概念。继续学习和实践,你将能够开发各种类型的应用程序,并为用户提供出色的体验。祝你在...
大学作业——基于objective-c语言的小程序
Objective-C语言的许多决策可以在编译和运行时执行。只要有可能,它是动态的。这意味着Objective-C语言不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。Runtime系统是一种用于Objective-C语言的操作系统...
这是一个基于Objective-C语言的基础案例集。旨在用于给初学者快速了解Objective-C语言的语法。.zip