1.重点,需要查询的知识点
2.关于重写init方法
一定要调用super的init 方法;初始化父类声明中的一些成员变量和其他属性
因为在初始化的时候,先初始化NSObject类,再初始化字的的成员变量,然后把isa指向子类
-(id) init
{
self = [super init];
if (self !=nil)//如果初始化成功,才有必要进行接下来的初始化
{//初始化成功
}
return self;
}
重写构造方法的目的:是为了让对象创建出来,成员变量就会有一些固定的值,
3、继承和组合 self和super |
4、Foundation框架详解 常用的数据类型:字符串(NSString) 数组(NSArray) 字典(NSDictionary) 日期与时间(NSDate) 日期格式(NSDateFormatter) 日历(NSCalendar) 定时器(NSTimer) 键值编码(KVC) 键值监听(KVO) 通知中心(NSNotificationCenter) 通知(NSNotification) 各种数值(NSNumber NSValue NSNull) |
5、内存管理(alloc、new、copy、retain、release。Autorelease、strong、weak) ARC |
8、类别(Category) 协议(protocol) |
ARC/MRC (内存管理相关)、runtime (运行时相关)、GCD (多线程相关)是 iOS 面试的三大杀器 |
考察一个面试者基础咋样,基本上问一个 @property 就够了: @property 后面可以有哪些修饰符? 什么情况使用 weak 关键字,相比 assign 有什么不同? 怎么用 copy 关键字? 这个写法会出什么问题: @property (copy) NSMutableArray *array; 如何让自己的类用 copy 修饰符?如何重写带 copy 关键字的 setter? 这一套问题区分度比较大,如果上面的问题都能回答正确,可以延伸问更深入点的: @property 的本质是什么?ivar、getter、setter 是如何生成并添加到这个类中的 @protocol 和 category 中如何使用 @property runtime 如何实现 weak 属性 |
5.Fundation Kit 介绍
Objective -C包括三个新的语言特性:类方法,即由类本身而不是某个示例来处理的方法,@encode()指令;快速枚举。
NSString用来存储人可以直接看懂的文本,NSArray和NSDictionary用来存储对象的集合,这些集合是不可变的,
6.关于组合和聚合
组合:对象的使用是紧耦合的,创建Computer对象会自动的同时创建Cpu对象。(一体机、笔记本)
优:代码的使用是非常简单的。
缺:灵活度不高。
系统的功能。。。
控制器(UIViewController)与视图(UIView)
聚合:对象的使用是松耦合的,创建Computer对象是不会自动的同时创建Cpu对象,需要手动自己指定Cpu对象,如果Cpu对象满足不了需要是可以替换的。(兼容机)
优:灵活度高。
缺:代码的使用略微复杂。
自定义控件:
TRTableView
TRTableViewCell
7.在64位的平台,不管什么类型的指针,其本质是来存放地址,所以任何一个指针类型的变量,其大小只要能容纳下地址就可以,所以都是8个字节。
8.OC 数组只能存放OC对象,不能存放非OC对象类型,比如 int,struct,enum,同时也不能存放空值。