我仍处于Swift / iOS的学习曲线上,并且对以下格式的功能感到困惑。由于仅coder
被指定为NSCoder
类型,因此我不明白为什么您需要decoder
。
在this link,解码器是 unarchiver 对象,但 unarchiver 是什么?
有人可以解释一下吗?
init(coder decoder: NSCoder)
答案 0 :(得分:2)
init(coder decoder: NSCoder)
定义了一个函数,其中编码器是公共参数名称(调用方法时可见),解码器是局部变量名称(在方法内部引用)。
Unarchiver是一个负责从存储数据中恢复对象的对象(例如,当您提取以用户默认值保存的对象时)。
答案 1 :(得分:1)
看看:
那说:
外部参数名称
有时在调用函数时命名每个参数很有用, 表示传递给函数的每个参数的用途。
单词编码器只描述了下一个参数/将要做什么。在init函数中,我认为你总是被迫写出那个外部参数名。
在自定义/普通功能中,您可以直接包含这些名称,或仅包含参数。
所以你可以这样做:
func sumToNumbers(theFirstNumber firstNumber :NSInteger, andSecondNumber secondNumber:NSInteger){
}
or
func sumToNumbers(firstNumber :NSInteger, secondNumber:NSInteger){
}
问候。