oc学习经验

来源:互联网 发布:三次元绅士软件 编辑:程序博客网 时间:2024/06/16 19:30

1.重点,需要查询的知识点

2.关于重写init方法

  一定要调用superinit方法;初始化父类声明中的一些成员变量和其他属性

因为在初始化的时候,先初始化NSObject类,再初始化字的的成员变量,然后把isa指向子类

-(id) init

{

  self = [super init];

 if (self !=nil)//如果初始化成功,才有必要进行接下来的初始化

 //初始化成功

 

 return self;

}

重写构造方法的目的:是为了让对象创建出来,成员变量就会有一些固定的值,

3、继承和组合 selfsuper

4Foundation框架详解常用的数据类型:字符串(NSString)数组(NSArray)字典(NSDictionary)日期与时间(NSDate)日期格式(NSDateFormatter)日历(NSCalendar)定时器(NSTimer)键值编码(KVC)键值监听(KVO)通知中心(NSNotificationCenter)通知(NSNotification)各种数值(NSNumber NSValue NSNull

5、内存管理(allocnewcopyretainreleaseAutoreleasestrongweak) ARC

8、类别(Category)协议(protocol)

ARC/MRC(内存管理相关)、runtime(运行时相关)、GCD(多线程相关)是 iOS面试的三大杀器

考察一个面试者基础咋样,基本上问一个 @property 就够了:

@property后面可以有哪些修饰符?

什么情况使用 weak关键字,相比 assign有什么不同?

怎么用 copy关键字?

这个写法会出什么问题: @property (copy) NSMutableArray *array;

如何让自己的类用 copy修饰符?如何重写带 copy关键字的 setter

这一套问题区分度比较大,如果上面的问题都能回答正确,可以延伸问更深入点的:

@property的本质是什么?ivargettersetter是如何生成并添加到这个类中的

@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,同时也不能存放空值。


0 0