似乎URL初始值设定项(字符串:“”)在使用字符串插值时拒绝正确初始化。问题是,当我使用类似URL和字符串插值
let url = URL(string: "http://192.168.1.1")
它的工作原理,但以下
let host = "192.168.1.1"
let url = URL(string: "http://\(host)")
不和url =零。
在Playground中,但不在代码中。我仔细检查了变量主机是否设置正确。
有什么想法?
似乎URL初始值设定项(字符串:“”)在使用字符串插值时拒绝正确初始化。问题是,当我使用类似URL和字符串插值
let url = URL(string: "http://192.168.1.1")
它的工作原理,但以下
let host = "192.168.1.1"
let url = URL(string: "http://\(host)")
不和url =零。
在Playground中,但不在代码中。我仔细检查了变量主机是否设置正确。
有什么想法?
我在swift世界很新,我也有这个问题,在我的情况下,我宣布让其他类中的URL不变,并且swift不会因为错误而大叫。所以你可以搜索你是否声明了两次var。
有类似的问题。
这个工作在斯威夫特2,但是在斯威夫特3(I我们的应用程序,与Facebook类似&透过Facebook Messenger的2间反弹)爆发:与隐式声明展开自选(变量
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
}
在斯威夫特2! )工作时无需拆开包装。在斯威夫特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
}
'在游乐场两部作品,但不是在code.'没有理由为,它应该工作相同的应用程序。我的猜测是你在其他地方有另外一个问题 - 或者你的价值观不是你认为的那样,请与调试器核对一下。 – Moritz
只要提一下,在使用NSURL之前它已经很长时间了,直到我昨天将代码迁移到Swift3。 – user2754787
它在测试应用程序中适用于Swift 3。 [截图](https://www.evernote.com/l/AOw6OBs-sdlFl6y0v4DPhjPGwtfBzMNp2lI) – Moritz