Objective-C语法要点的学习一

ObjC程序最主要的编辑编译环境是XCode,若要使用到Cocoa,还必须在XCode上开发。且ObjC编程主要用到的框架还是Cocoa,是Mac OS X中五大API之一。

Cocoa由两个不同的框架组成FoundationKit和ApplicationKit。Foundation框架拥有100多个类,如NSString、NSArray、NSEnumerator和NSNumber等数据类型。ApplicationKit包含了所有的用户接口对象和高级类。

ObjC从语言角度讲其缺点是:没有命名空间、没有操作符重载、没有C++复杂。

ObjC是C的超集,也分头文件.h和源文件.m,若是加入C++语法还要用到.mm文件。头文件包涵类的定义、类型、方法以及常量的声明;源文件是实现声明的代码文件。

比#include更好的包含头文件的方法是#import,因为它能保证只此一次。每个框架有一个主的头文件,只要包含了这个文件,框架中的所有特性都可以被使用。

@符号

可以认为它是对C的一个扩展特性,如@“字符串”表示引用的字符串应该作为Cocoa的NSString元素来处理。而@interface等则是对于C的扩展,是ObjC面向对象特性的体现。

NSLog()是ObjC中的打印函数,虽然C原有的printf()仍有用。

BOOL是ObjC中的布尔类型,与原有C中的bool有所区别:

BOOL——YES(1) NO(0) bool——true(! 0 ) false(0)

id是一个数据类型,表示一般的对象类型,能够存储任何类型的方法。

nil相当于原来C的NULL,是等价的。

ObjC中创建对象

ObjC定义一个类需要两部分:接口和实现。接口文件包含了类的声明,定义了实例变量和方法。实现文件包含了具体的函数的实现代码。

类的定义从@interface开始到@end结束。在类名后面是所继承的父类名称。实例变量被定义在两个花括号之间。在实例变量之后才是方法的定义。

类的实现从@implementation开始到@end结束。

当把一个对象保存进变量,则要使用指针类型。ObjC同时支持强和弱变量对象。强类型对象是在变量类型定义时包含了类名;弱类型对象就是使用id类型作为实例变量。 MyClass* myObject1; 为强类型 id myObject2; 为弱类型

调用一个方法相当于传递一个消息(方法名和参数)。消息调用的方式是使用方括号。且消息传递允许嵌套。

- 定义的方法就是通常的实例方法。

+ 定义的方法是类方法,功能类似于静态C++类。

属性可以使用 . 语法来访问。

对象的初始化有两种方法:

一、 [类名 new];

二、 [[类名 alloc]init];

Cocoa推荐使用第二种方式对对象初始化。此过程完成了分配内存和初始化该内存区域两个动作。