内容说明: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:的可以是任何类型