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

9

我正在将我的Swift 2.3代码转换为Swift 3,但在下面的代码行上出现了上述错误:

setSharedPassword(nil, account: account, completion: completion)

合适的解决方案是将nil替换为""吗?我这样做后错误消失了。我正在寻找一种解释,请帮忙。


1
如果你用 "" 替换 nil,错误就会消失。看起来这个方法需要一个密码 - 我猜想不需要密码? - Logan
这是你自己的个人函数吗? - Benjamin Lowry
1个回答

12
如果您的setSharedPassword函数的第一个参数是String类型,则无法将其设置为nil,因为它不是可选的。如果您想将其设置为nil,则可以在函数中执行以下操作:
func setSharedPassword(string: String?, account: ...)

"" 可以生效的原因是它仍然是一个字符串的值,只是一个没有字符的值。

当然,这个回答假定这是你自己的函数。如果 setSharedPassword 不是你自己创建的,那么你需要想出一个表示没有密码的字符串,或者就像之前一样提供 ""。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接