http://www.entlib.net/?p=1561
Objective-C中的命名前缀说明:
NS:NextStep
CF:Core Foundation
CA:Core Animation
CG:Core Graphics
UI:User Interface
Objective-C与C++的不同之处有:
Objective-C中所有的类都必须继承自NSObject。
Objective-C中所有对象都是指针的形式。
Objective-C用self代替this。
Objective-C使用id代替void*。
Objective-C使用nil表示NULL。
Objective-C只支持单继承。
Objective-C使用YES/NO表示TRUE/FALSE
Objective-C使用#import代替#include
Objective-C中用消息表示类的方法,并采用[aInstance method:argv]调用形式。
Objective-C支持反射机制。
Objective-C支持Dynamic Typing, Dynamic Binding和Dynamic Loading。
Objective-C中的函数声明格式有:
-/+ (return type) function_name;
-/+ (return type) function_name : (parameter type) parameter;
-/+ (return type) function_name :
(parameter type) parameter1 otherParameter :
(parameter_type) parameter2
以上参数说明: – 表示一般函数,+ 表示静态函数。otherParameter是参数的别名(第一个参数的别名省略),在函数调用时方便指定。
IBOutlet,IBAction: 这两个东西其实在语法中没有太大的作用。如果你希望在Interface Builder中能看到这个控件对象,那么在定义的时候前面加上IBOutlet,在Interface Builder里就能看到这个对象的outlet,如果你希望在 Interface Builder里控制某个对象执行某些动作,就在方法前面加上(IBAction)。
Modern Objective-C 基础知识
From[一步一步学习 iOS 6 编程]
1,默认属性自动绑定(Default Property Synthesis)
在 Modern Objective-C 引入后,就可以不必编写@synthesize 指令了
当使用默认属性自动绑定时,可以使用属性名,前面添加一个下划线的前缀,就可以访问实例变量。例如访问前面定义的 imageView 实例变量,使用
_imageView 或 self.imageView 就可以访问了。
2,方法顺序(Method Ordering)
之前,要求方法定义的位置在它被调用之前,就是先定义方法,然后才可以调用。
对于 Modern Objective-C 而言,方法的顺序不再是问题了,你调用的方法可以在之后定义。
3,NSNumber 简化用法
NSNumber *number = [NSNumber numberWithInt:100];
通过 Modern Objective-C,可以简化代码获得相同的结果:NSNumber *number = @100;
实际上,所有 NSNumber 类的 numberWithXXX 方法,都可以使用 Modern Objective-C 代码简化:
NSNumber *number;
number = @’A’; // Character
number = @YES; // Boolean
number = @111222333ul; // Unsigned Long
number = @123456l; // Long Long
number = @123.45 // Float
number = @123 // Integer
number = @123.432 // Double
现在直接使用@开头,加上数字,就完成了 NSNumber 对象的初始化
4,NSArray 数组简化
如:NSArray *carMakes;
carMakes = @[@"Chevy", @"BMW", @"Toyota", @"Volvo", @"Smart"];
注意:使用@[] 创建的是不可变数组!!如果需要创建可变数组,需要使用mutableCopy:
NSMutableArray *carMakes = [@[@"Chevy", @"BMW", @"Toyota",@"Volvo", @"Smart"] mutableCopy];
访问数组元素也相同地做了简化。例如,下面的代码用来访问数组元素 0:NSString *firstCar = [carMakes objectAtIndex:0];
使用 Modern Objective-C,代码可以简化为:NSString *firstCar = carMakes[0];
给数组元素赋值的方法也进行了简化:carMakes[1] = @”VW Jetta”;
5,NSDictionary 字典简化
之前初始化NSDictionary 对象的代码如下所示:
NSDictionary *bookListing = [NSDictionary dictionaryWithObjectsAndKeys: object1, key1, object2, key2, object3, key3, nil];
可以简化代码如下:NSDictionary *bookListing = {key1 : object1, key2 : object2, key3 : object3};
和数组一样,下标可用来访问字典项,如下使用 key1 下标来访问 bookListing字典对象:
bookObject = bookListing[key1];
如下代码可更新 bookListing 字典对象中 key2 键所对应的对象值:
bookListing[key2] = newBookObject;