Swift中函数参数的变量类型

时间:2015-05-25 13:06:30

标签: ios swift

我仍处于Swift / iOS的学习曲线上,并且对以下格式的功能感到困惑。由于仅coder被指定为NSCoder类型,因此我不明白为什么您需要decoder

this link,解码器是 unarchiver 对象,但 unarchiver 是什么?

有人可以解释一下吗?

init(coder decoder: NSCoder)

2 个答案:

答案 0 :(得分:2)

init(coder decoder: NSCoder)定义了一个函数,其中编码器是公共参数名称(调用方法时可见),解码器是局部变量名称(在方法内部引用)。

Unarchiver是一个负责从存储数据中恢复对象的对象(例如,当您提取以用户默认值保存的对象时)。

答案 1 :(得分:1)

看看:

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.html

那说:

  

外部参数名称

     

有时在调用函数时命名每个参数很有用,   表示传递给函数的每个参数的用途。

单词编码器只描述了下一个参数/将要做什么。在init函数中,我认为你总是被迫写出那个外部参数名。

在自定义/普通功能中,您可以直接包含这些名称,或仅包含参数。

所以你可以这样做:

 func sumToNumbers(theFirstNumber firstNumber :NSInteger, andSecondNumber secondNumber:NSInteger){
   }
or
  func sumToNumbers(firstNumber :NSInteger, secondNumber:NSInteger){

 }

问候。