一. objective- c 简介
Objective-Objective- C 是 C 语言的严格超集--任何 C 语言程序不经批改就能够间接通过 Objective- C 编译器,在 Objective- C 中应用 C 语言代码也是齐全非法的。Objective- C 被形容为盖在 C 语言上的薄薄一层,因为 Objective- C 的原意就是在 C 语言主体上退出面向对象的个性。
扩展名 | 内容类型 |
---|---|
.h | 头文件。头文件蕴含类,类型,函数和常数的申明。蕴含头文件时,#import 选项和 #include 选项完全相同,只是它能够确保雷同的文件只会被蕴含一次。 |
.m | 源代码文件。这是典型的源代码文件扩展名,能够蕴含 Objective-C 和 C 代码。 |
.mm | 源代码文件。带有这种扩展名的源代码文件,除了能够蕴含 Objective- C 和 C 代码以外还能够蕴含 C ++ 代码。仅在你的 Objective- C 代码中的确须要应用 C ++ 类或者个性的时候才用这种扩展名。 |
二. 语法
1. 字符串
大多数 Objective- C 通常不应用 C 语言格调的字符串。反之,大多数框架把字符串传递给 NSString 对象。NSString 类提供了字符串的类包装,蕴含了所有你冀望的长处,包含对保留任意长度字符串的内建内存管理机制,反对 Unicode,printf 格调的格式化工具
NSString* myString = @"My Stringn";
NSString* anotherString = [NSString stringWithFormat:@"%d %s", 1, @"String"];
2. 类
Objective-C 的类规格阐明蕴含了两个局部:定义(interface)与实现(implementation)。定义(interface)局部蕴含了类申明和实例变量的定义,以及类相干的办法。实现(implementation)局部蕴含了类办法的理论代码。
-
interface
定义局部,分明定义了类的名称、数据成员和办法。以关键字 @interface 作为开始,@end 作为完结
@interface MyObject : NSObject { int memberVar1; // 实体变量 id memberVar2; } +(return_type) class_method; // 类办法 -(return_type) instance_method1; // 实例办法 -(return_type) instance_method2: (int) p1; -(return_type) instance_method3: (int) p1 andPar: (int) p2; @end // 办法后面的 +/- 号代表函数的类型:加号(+)代表类办法(class method),不须要实例就能够调用,与 C ++ 的动态函数(static member function)类似。减号(-)即是个别的实例办法(instance method)。
//Objective- C 定义一个新的办法时,名称内的冒号(:)代表参数传递,不同于 C 语言以数学函数的括号来传递参数。Objective- C 办法使得参数能够夹杂于名称两头,不用全副附缀于办法名称的尾端,能够进步程序可读性。设定色彩 RGB 值的办法为例:- (void) setColorToRed: (float)red Green: (float)green Blue:(float)blue; /* 宣告办法 */ [myColor setColorToRed: 1.0 Green: 0.8 Blue: 0.2]; /* 呼叫办法 */ // 这个办法的签名是 setColorToRed:Green:Blue:。每个冒号前面都带着一个 float 类别的参数,别离代表红,绿,蓝三色。
-
Implementation
实现区块则蕴含了公开办法的实现,以及定义公有(private)变量及办法。以关键字 @implementation 作为区块起头,@end 结尾。
@implementation MyObject {int memberVar3; // 公有實體變數} +(return_type) class_method {... //method implementation} -(return_type) instance_method1 {...} -(return_type) instance_method2: (int) p1 {...} -(return_type) instance_method3: (int) p1 andPar: (int) p2 {...} @end
-
创建对象
Objective- C 创建对象需通过 alloc 以及 init 两个音讯。alloc 的作用是分配内存,init 则是初始化对象。
MyObject * my = [[MyObject alloc] init]; MyObject * my = [MyObject new];