Nil与预期的参数类型'String'不兼容

Der*_*ive 6 ios swift swift3

我目前正在将我的swift 2.3代码转换为swift 3,我在以下行中收到上述错误:

setSharedPassword(nil, account: account, completion: completion)
Run Code Online (Sandbox Code Playgroud)

适当的解决方案是否只是用""代替nil?当我这样做时,错误消失了.我正在寻找解释.请帮忙.

Ben*_*wry 6

如果您的setSharedPasswordfunc的第一个参数是类型,String那么您将无法将其设置为nil因为它不是可选的.如果你想将它设置为nil,那么你可以为你的func做这样的事情:

func setSharedPassword(string: String?, account: ...)
Run Code Online (Sandbox Code Playgroud)

""之所以有效,是因为它仍然是String的值,只是一个没有字符的值.

当然这个答案是假设这是你自己的功能.如果setSharedPassword不是你的,那么你要么想出一个代表没有密码的字符串,要么就像以前一样提供"".