Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
线程1:EXC_断点(代码=1,子代码=0x10136bb50)-swift_Swift_Xcode_Swift3 - Fatal编程技术网

线程1:EXC_断点(代码=1,子代码=0x10136bb50)-swift

线程1:EXC_断点(代码=1,子代码=0x10136bb50)-swift,swift,xcode,swift3,Swift,Xcode,Swift3,当我想用GET方法发送值时,出现了此错误: 线程1:EXC_断点(代码=1,子代码=0x10136bb50) 要获取值,请执行以下操作: var flname = self.txt_field_flname.text var job_title = self.txt_field_job_title.text var mobile = self.txt_field_mobile.text var des = self.txt_field_des.text v

当我想用
GET
方法发送值时,出现了此错误:

线程1:EXC_断点(代码=1,子代码=0x10136bb50)

要获取值,请执行以下操作:

var flname      = self.txt_field_flname.text
var job_title   = self.txt_field_job_title.text
var mobile      = self.txt_field_mobile.text
var des         = self.txt_field_des.text
var lat         = self.lat
var lon         = self.lon

self.sendNewJob(fname: flname!, title: job_title!, mobile:  mobile!, des: des!, lat: String(lat), lon: String(lon) )



当代码执行nil值时会发生这种情况。这里是代码NSURL(string:path)!值可能为零。您可以使用可选绑定(如果让)来检查NSURL是否有效。当字符串无效且不构成有效URL时,会发生这种情况。

您可以这样使用:

private func makeHTTPGetRequest(path: String, onCompletion: @escaping ServiceResponse) {
    if let encodedPath = path.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) {
        if let url = URL(string: encodedPath) {
            let request = URLRequest(url: url)
            let session = URLSession.shared
            let task = session.dataTask(with: request as URLRequest, completionHandler: {data, response, error -> Void in
                if let jsonData = data {
                    let json:JSON = JSON(data: jsonData)
                    onCompletion(json, error as NSError?)
                } else {
                    onCompletion(nil, error as NSError?)
                }
            })
            task.resume()
        } else {
            print("url is nil")
            onCompletion(nil)
        }
    } else {
        print("unable to encode url")
        onCompletion(nil)
    }
}

任何粗心写的感叹号都是一个邀请:请撞车。顺便说一句,这是Swift 3:不要使用
NSMutableURLRequest
NSURL
NSError
,变量名应该是camelCased而不是snake\u cased0k。我认为NSURL不支持utf-8。使用utf-8字符串时出现此错误。请使用导致此崩溃的
path
的确切值更新您的问题。它很可能有空格或其他无效的、未转义的字符。我认为
NSURL
不支持utf-8。我在使用utf-8字符串时遇到了这个错误。
func sendNewJob(fname:String,title:String,mobile:String,des:String,
                lat:String,lon:String,onCompletion: @escaping (JSON) -> Void) {
    let route = baseURL+"up=1&Name=\(fname)&BusinessName=\(title)&MobileNumber=\(mobile)&latitude=\(lat)&longitude=\(lon)&Description=\(des)"
    makeHTTPGetRequest(path: route, onCompletion: { json, err in
        onCompletion(json as JSON)
    })
}


// MARK: Perform a GET Request
private func makeHTTPGetRequest(path: String, onCompletion: @escaping ServiceResponse) {
    let request = NSMutableURLRequest(url: NSURL(string: path)! as URL) // line of my error

    let session = URLSession.shared

    let task = session.dataTask(with: request as URLRequest, completionHandler: {data, response, error -> Void in
        if let jsonData = data {
            let json:JSON = JSON(data: jsonData)
            onCompletion(json, error as NSError?)
        } else {
            onCompletion(nil, error as NSError?)
        }
    })
    task.resume()
}
private func makeHTTPGetRequest(path: String, onCompletion: @escaping ServiceResponse) {
    if let encodedPath = path.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) {
        if let url = URL(string: encodedPath) {
            let request = URLRequest(url: url)
            let session = URLSession.shared
            let task = session.dataTask(with: request as URLRequest, completionHandler: {data, response, error -> Void in
                if let jsonData = data {
                    let json:JSON = JSON(data: jsonData)
                    onCompletion(json, error as NSError?)
                } else {
                    onCompletion(nil, error as NSError?)
                }
            })
            task.resume()
        } else {
            print("url is nil")
            onCompletion(nil)
        }
    } else {
        print("unable to encode url")
        onCompletion(nil)
    }
}