无法将类型为'Void'的值分配为类型为'String?'
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法将类型为'Void'的值分配为类型为'String?'相关的知识,希望对你有一定的参考价值。
我出现错误“无法将'Void'类型的值分配给'String吗?'”我的代码
func showPhone(place: Place){
if let phone = place.phone {
var urlPhone: NSURL = URL(string: "TEL://(phone)")! as NSURL
phoneValue.text = UIApplication.shared.open(urlPhone as URL, options: [:], completionHandler: nil)
}
else {
self.phoneContainer.isHidden = true
}
}
答案
原因:
您正在尝试将open(_:options:completionHandler:)
的结果分配为phoneValue's
text
。但是,方法open(_:options: completionHandler:)
不返回任何内容。这就是它给出错误的原因。
解决方案:
showPhone(place:)
方法应该像,
func showPhone(place: Place){
if let phone = place.phone {
phoneValue.text = phone
if let urlPhone = URL(string: "TEL://(phone)") {
UIApplication.shared.open(urlPhone, options: [:], completionHandler: nil)
}
}
else {
self.phoneContainer.isHidden = true
}
}
以上是关于无法将类型为'Void'的值分配为类型为'String?'的主要内容,如果未能解决你的问题,请参考以下文章
无法将'__NSDictionaryM'(0x1111152b0)类型的值转换为'FIRDataSnapshot'Firebase Swift 3
错误:对类型为'const ItemInstance'的引用无法绑定到类型为'void'的右值
无法将'__ NSCFString'类型的值转换为'NSData'
无法将'CGFloat'类型的值转换为闭包结果类型'CGPoint'