Objective-C
第二部分C
1. NSInteger类型变量,需要转化为long,使用%ld
2. NSUInteger类型变量,需要转化为unsigned long,使用%lu
3. 浮点数float:%.2f保留小数点后2位;%.2e是科学计数法,保留小数点后2位
4. 地址与指针:%p是针对内存地址的格式说明符 &i(int i = 7); %zu,sizeof()会返回一个类型为size_t的数。
第三部分OC
对象Object
消息
1. 和结构不同的在于:对象还可以包含一组函数,并且这些函数可以使用对象所保存的数据。这类函数成为方法(methods)
2. 对象图:类用虚线,实例用实线
3. OC使用NSLog(),功能与printf()类似。NSLog()会根据传入的格式化字符串将格式说明符替换为实际的值,然后输出结果。NSLog()会先输出日期、时间、程序名称和进程ID,然后输出实际内容。
4. 方法和消息:方法和函数类似,根据指令执行相应的功能。在Objective-C语言中,如需执行方法里的代码,首先需要发送一条消息给包含这个方法的对象或类,如:NSDate *now = [NSDate date]; 向NSDate类发送了date消息,让它执行date方法。
5. 消息发送:消息发送(指令)必须写在一对方括号中,并且必须包含接收方(receiver)和选择器(selector)。选择器:方法名,要触发的方法的方法名;接收方:指针,指向接收消息的对象的地址。
6. %@。会输出相应对象的"描述信息"。
7. NSDate *now = [NSDate date];double seconds = [now timeIntervalSince1970];第一条消息发送指令中,NSDate类发送了date消息,date是一个类方法(class method)。类方法会创建类的实例,并初始化实例变量。第二条消息发送指令中,now变量指向的NSDate实例发送了timeIntervalSince1970,这是一个实例方法(instance method)。实例方法会提供实例中实例变量的信息,或是对实例的实例变量进行操作。
8. Objective-C语言命名习惯:指向实例的变量使用"骆驼拼写法(camel case)"来命名,以小写字母开头,接下来每个单侧的第一个字母使用大写;方法的命名也是用骆驼拼写法;类的名称以大写字母开头,但接下来的单词继续使用骆驼拼写法(如:NSDate、Person、CLLocation、NSMutableArray)(一般来说,类的名称是要加前缀的,这样可以避免相似,并且通过前缀可以知道它属于哪个框架。Foundation框架的类使用NS前缀);很多苹果创建的类型和常量的命名也是前缀大写的骆驼拼写法,如:NSInteger整形类型、NSOKButton常量。
9. 方法带实参的时候,冒号是构成方法名的一个重要部分
10. NSCalendarUnitDay、NSCalendarUnityMonth。(新命名)
11. 消息的嵌套发送:消息可以以嵌套的形式连续发送。
12. alloc和init: 唯一必须已嵌套形式连续发送的消息是alloc和init。(每个类都有一个alloc类方法,能够创建一个新的对象并返回指向该对象的指针,通过alloc创建出来的对象,必须经过初始化才能使用,若未初始化则会存在于内存但无法接收消息。每个类都有一个init实例方法用来初始化实例)
13. 想nil发送消息是合法的(如果程序向某个对象发送消息,但却没有得到预期的结果,请检查消息的接收方是否为nil;向nil发送消息,得到的返回值没有意义)
14. id:id类型可以指向任意类型Objective-C对象的指针(注意:id已经隐含了星号的作用)
网友评论