加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – URL和字符串插值

发布时间:2020-12-14 04:43:35 所属栏目:百科 来源:网络整理
导读:似乎URL初始化器(字符串:“”)在使用字符串插值时拒绝正确初始化.问题是,当我使用类似的东西时 let url = URL(string: "http://192.168.1.1") 它有效,但以下 let host = "192.168.1.1"let url = URL(string: "http://(host)") 不和url = nil. 在Playground
似乎URL初始化器(字符串:“”)在使用字符串插值时拒绝正确初始化.问题是,当我使用类似的东西时

let url = URL(string: "http://192.168.1.1")

它有效,但以下

let host = "192.168.1.1"
let url = URL(string: "http://(host)")

不和url = nil.

在Playground中既可以工作,也可以不在代码中.我仔细检查了变量主机是否设置正确.

任何的想法?

解决方法

有类似的问题.

这在Swift 2中有效但在Swift 3中有所突破(我在两个应用程序之间反弹,类似于Facebook和Facebook Messenger):

var userId: Int!
var userType: String!

// userId and userType are set by some code somewhere else...

if let url = URL(string: "anotherappicreated://?userId=(userId)&userType=(userType)") {
    UIApplication.shared.openURL(url)   // Open our other app
}

在Swift 2中,隐式解包的选项(用!声明的变量)无需打开它们就可以工作.在Swift 3中,您似乎必须明确解包选项:

var userId: Int!
var userType: String!

// userId and userType are set by some code somewhere else...

if let userId = userId,// <-- HAD TO ADD THIS
    let userType = userType,// <-- AND THIS
    let url = URL(string: "anotherappicreated://?userId=(userId)&userType=(userType)") {
    UIApplication.shared.openURL(url)   // Open our other app
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读