OC模拟试题总结:
-
类目可以为所有的类添加新方法 - 定义一个协议后,不是所有的类都可以遵守这个协议,比如系统的类,因为无法修改系统的.m文件,根本就看不到
- NSDate类实例化的对象是+0000时区的时间,不是东八区的时间
- OC中扩展类的方法的形式有:继承、类目、延展
- 协议里的方法默认是必须实现的
- 类接受了多个协议,这些协议写在父类后面的<>中,多个协议之间用","英文的逗号隔开
- 内存管理是通过操作对象的引用计数实现的
- 调用对象的release方法可以立即减小对象的引用计数器。调用autorelease则不是立即的减少,而是随着自动释放池的消失而减少
- 延展主要为类提供:私有方法、私有变量、属性
- 无论能否拿到类的源码,类目都可以对其扩展
- 类目和延展的声明语法是完全不同
- 类比较抽象、对象比较具体
- NSDictionary通过initWithObjectsAndKeys:方法存入的是 值-键 的形式, 而打印出来的是 键=值 的形式
- 子类调用父类中的方法可以使用super,也可以使用self,因为子类继承了父类中全部的方法
- KVC是 键-值-编码。 是一种间接访问对象的机制。 可以访问对象的属性和成员变量。
- KVO是 键-值-监听。 是一种设计模式,观察者模式,当被观察着的某个属性或者成员变量的值发生改变时,观察者就会接收到通知
- 面向对象的三大特性:封装、继承、多态
- 开启ARC后,可以重写dealloc方法,但是不可以调用父类的dealloc方法,可以在重写dealloc给属性或成员变量设置为nil
- 对象在什么时候被释放内存?
答:在retainCount为0的时候被释放 - 在对象的setter方法中写self.age = newAge; 会是程序死循环。
- 用于修饰Property众多Attribute(属性)中,可以使用setter/ getter/ nonatomic/ atomic/ readwrite/ readonly/ assign/ retain/ copy
- 集合可以存放不同类型的对象、但集合只能存对象