这是我参与「第四届青训营」笔记创作活动的第1天
Class的编写
OC中类由两部分组成:
- 1.类的定义(界面 interface)
- 2.类的实现(implementation)
类声明以@interface开头,以 @end 结束。 实现以@implementation开头,以@end结束。
@interface是一个声明,可以声明属性、变量、函数方法。 每个interface声明的方法都要去实现。
.h 文件 和 .m 文件
@interface类的定义放在 .h 文件时,就可以被其他的 .h .m文件 import,如果放在.m文件里,那么只能在这个文件里使用。
@implementation实现只能放在.m文件
.m 文件中,使用其他的类的函数需要在顶部引入.h文件
.m文件不能被引入。
消息传递
objective-c使用[]进行消息传递
C++中:
obj.method(argument);
Objective-C :
[obj method: argument]; //调用obj类的method方法并传递argument变量
字符串
单个字符被单引号包括,字符串被双引号包括。然而,大多数Objective-C通常不使用C语言风格的字符串。大多数框架把字符串传递给NSString对象。
Nsstring* myString = @"My String\n";
Nsstring* anotherString = [Nsstring stringWithFormat:@"%d %s", 1, @"String"];
创建对象
MyObject * my = [[MyObject alloc] init];
使用alloc 和 init两个消息进行创建:alloc分配内存,init进行初始化。
方法
Objective-C 中的类可以声明两种类型的方法:实例方法和类方法。 实例方法就是一个方法在类的一个具体实例的范围内执行。也就是说,在调用一个实例方法前,你必须首先创建类的一个实例。而类方法不需要创建一个实例。
协议(Protocol)
协议是一组没有实现的方法列表,分为两种:
-
非正式协议(可以选择性实现的协议,已废弃)
-
正式协议(通过@optional 自主选择是否实现)
协议以@protocol开始,@end结束,中间包含未实现的方法列表。
@protocol Locking
- (void)lock;
- (void)unlock;
@end