對不起我的虛擬問題,但我是新的Swift開發,我有一個Swift 1.1項目工作正常,但升級到Xcode後爲7.3。 1(和Xcode 2.2.1)我的項目是成功建立,但同時用下面的代碼運行它(在令請求線),我得到一個錯誤:Swift 2.2:致命錯誤:意外地發現零,同時展開一個可選值
// Send HTTP GET Request
let request = NSURLRequest(URL: NSURL(string: "http://11.22.33.44:8080/MySRV/login?email=\(emailField.text)&password=\(pwdField.text)")!)
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue(), completionHandler:{
(response: NSURLResponse?, data: NSData?, error: NSError?)-> Void in
print("response \(response?.description)")
的錯誤是:
Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) fatal error: unexpectedly found nil while unwrapping an Optional value
我可以想象,我的請求是零,但我不知道如何解決它。
感謝您的幫助。
您可以通過調試解決它。首先找出什麼是零,請求?如果是這樣,爲什麼它可能是零。可能是因爲emailField.text是零?如果是這樣,爲什麼這可能是零,在哪裏以及如何設置?或者,也許是因爲pwdField.text是零,如果是這怎麼可能是零?它在哪裏設置?它爲什麼沒有價值等等。這些都是你可以問問自己的問題,如果你嘗試,可以回答自己。這是調試。 – Gruntcakes
三個無關的觀察:1.現在不推薦使用'NSURLConnection',所以你現在應該使用'NSURLSession'(或者在Swift 3中,'URLSession')。 2.你不應該在URL中包含密碼。你應該建立一個POST請求並在請求的主體中包含這兩個參數。我假設您的最終服務器將採用HTTPS,但無論建議不要將敏感信息放入URL中,因爲一些舊的代理服務器可能會捕獲這些信息。你應該百分比轉義電子郵件地址和密碼。如果它們包含保留字符(特別是'+'或'&'),將會失敗。 – Rob
感謝羅布,我將使用NSURLSession。正如我告訴你的,我是一個快速入門的初學者,所以任何建議都非常值得歡迎 – tiamat