gpt4 book ai didi

swift - 进行调用的代码 - 无法调用非功能类型 "String"的值

转载 作者:行者123 更新时间:2023-11-30 12:36:30 26 4
gpt4 key购买 nike

我正在尝试使用此代码调用电话...

  let phone = detail.value(forKey: "Phone") as? String
guard let number = URL(string: "telprompt://" (phone)) else { return }
UIApplication.shared.open(number, options: [:], completionHandler: nil)

我试图改变我的代码基本上偏离这个答案swift how to make phone call iOS 10? ,但我很难创建一个工作/无错误的函数。

最初我的代码是这样的

 guard let number = URL(string: "telprompt://"\(phone))...

但是,Xcode 在电话变量的结束引号和左括号之间添加了一个空格,同时删除了“\”。不幸的是,现在我留下了标题中的错误。对我的代码进行调整将不胜感激:D

更新1:我已将代码更新为

@IBAction func call(_ sender: Any)
{
let phone = detail.value(forKey: "Phone") as? NSURL

func makeCallToNumber(number: String){

if let url = URL(string: "TEL://\(phone)"){
UIApplication.shared.open(url , options: [:], completionHandler: nil)
}
else{
print("Error")
}
}
}

但是代码仍然没有启动拨号器。

更新2:

我已将代码切换为

let phone = detail.value(forKey: "Phone") as? String
if let url = URL(string: "telprompt:\(String(describing: phone))") {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}

虽然我没有错误,但没有进行任何调用,这出现在我的控制台中。 message in console 。不确定这意味着什么。

最佳答案

工作示例:

func callNumber(phoneNumber: String) {
if let phoneCallURL = NSURL(string: "tel://\(phoneNumber.phoneToString())") {
if UIApplication.shared.canOpenURL(phoneCallURL as URL) {
UIApplication.shared.openURL(phoneCallURL as URL)
}
}
}

//removes "(", ")", "-", " " etc. and adds "+" for region code format
extension String {
func phoneToString() -> String {
var value = "+"
for character in self.characters {
if Int(String(character)) != nil {
value = value + String(character)
}
}
return value
}
}

phoneToString 会将“+000 (000) 000”格式化为“+000000000”

关于swift - 进行调用的代码 - 无法调用非功能类型 "String"的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42797691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com