小知识点

内容说明:initWithCoder

1.initWithCoder什么时候调用

**initWithNibName这个方法是在controller的类在IB中创建,但是通过Xcode实例化controller的时候用的.

**initWithCoder 是一个类在IB中创建但在xocde中被实例化时被调用的.

比如,通过IB创建一个controller的nib文件,然后在xcode中通过 initWithNibName来实例化这个controller,那么这个controller的initWithCoder会被调用.或者是一个view的nib文件,类似方法创建时调用initWithCoder

**initWithCoder和initWithFrame的区别

initWithoder 是当从nib文件中加载对象的时候会调用,比如你的view来自nib那么就会调用这个view的这个函数。(由框架调用)

initWithFrame (是由用户调用,来初始化对象的)

2.setValueForKey 和 setObjectForKey的区别

1, setObject:forkey:中value是不能够为nil的,不然会报错。

setValue:forKey:中value能够为nil,但是当value为nil的时候,会自动调用removeObject:forKey方法

2, setValue:forKey:中key的参数只能够是NSString类型,而setObject:forKey:的可以是任何类型

你可能感兴趣的:(小知识点)