似乎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