Objective-C 入门笔记

简介

建立在C语言之上,可以混编C/C++代码,编写一个类需要二个文件:

.h的头文件

.m的实现文件(如果是C/C++混编文件,文件后缀为.mm)

既然有头文件,所以很多人会拿它与C++进行类比,它最重要的三个特性是:Message、Category、Protocol,与C++类比,二者之间的不同:

1、它没有new也没有delete,但有类似的方法alloc、dealloc;

2、不支持多继承,只支持单继承,但是提供了Protocol;

3、它没有命名空间;

4、不支持内联函数;

5、不支持参数默认值;

C++太过庞大,所以拿二者比较其实不是特别合适,跟Java相比,我觉得可能更适合一些吧

 

快速入门

1) 类的定义

.h头文件

@interface Hello : NSObject  
 
@end
.m实现文件
#include "Hello.h"
@implementationFraction
 
@end

 
通常我们定义一个类,都会让它继承自NSObject。有人会问NSObject后面的{}怎么省略了,因为我没有定义“实现变量”所以就把它省略了。
 
因为OC不提供命名空间,所以类命名上要特别注意了,不然很容易覆盖/冲突而导致很多未知的问题。苹果定义的类,一般类名最前面有二个字母,比如NSObject中的NS,UIKit中的UI,所以为了避免跟苹果定义的类产生冲突,自定义的类以三个字母开头,比如BNR这样
 
 
2) 方法的定义和调用
 
方法分二种:实例方法、类方法,如上图所示,区别类方法和实例方法,主要是它的声明符:-、+
+ (返回值类型) 类方法名
- (返回值类型) 实例方法名,需要先创建后再使用,比如这样:[[[Hello alloc] init] methodName];
 
无论是哪种方法,调用都是使用中括号“[]”,方法的准确来讲应该称为发消息,它有三个要素:
receiver(消息接收方)
selector(选择器,通常指方法名)
arguments(实参)
 
通常类中调用自身的方法,用[self xx],self是一个隐式的局部变量,不需要声明self,程序自动会为self赋值,把它当作JavaScript中的this就好理解了。
 
OC中默认所有的方法都是公开的,所以如果你想定义一个私有方法,不需要在.h中声明方法,直接在.m中定义方法就好,但是建议使用p_开头,这样避免与苹果中定义的一些私有方法名产生冲突。
 
 
3) 基本数据类型
 
OC建立在C语言之上,所以C中的所有基本数据类型它都支持,比如:int、float、char…
OC自身定义的数据类型,都包含在Foundation中了,类名以NS开头,比如:NSArray、NSInteger、NSNumber,定义:NSString *myStr;
 
 
更多关于Objective-C的学习资料,推荐 Ry’s Objective-C Tutorial 
posted @ 2015-05-11 12:44  meteoric_cry  阅读(575)  评论(0编辑  收藏  举报