- (id)initWithCoder:(NSCoder *)decoder 的参数的作用

看源码的时候突然产生一个疑问,像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还是经常需要用的,所以开放来出来。

原文地址:https://www.cnblogs.com/Kelphizy/p/4378879.html