看源码的时候突然产生一个疑问,像initwithnibname方法他的参数我们知道是干嘛的,但- (id)initWithCoder:(NSCoder *)decoder中的decoder是干嘛的?
搜索出来的结论:主要在自定义的类archive归档序列化的时候实现NSCoding协议使用的,详情不细说,参见:
http://blog.csdn.net/holydancer/article/details/7371643
PS:description方法的重写挺有意思的。
那么在xib文件代码初始化里面经常出现的initWithCoder可以解释了,因为xib文件涉及非基本类型的数据存储,自然也要实现encodeWithCoder和initWithCoder两个方法,encodeWithCoder方法不需要我们调用,但是initWithCoder还是经常需要用的,所以开放来出来。
时间: 2024-11-05 17:21:54