当前位置: 首页 > 知识库问答 >
问题:

致命错误error Domain=NSCocoaErrorDomain Code=3840“在swift中上载图像时,字符0周围的值无效

谢飞舟
2023-03-14

我正在尝试将图像上载到服务器,它工作正常,但偶尔我会在下面的代码中收到try语句错误。这就是错误所说的

致命错误:“try!”表达式意外引发错误:错误域 = NSCocoa错误域代码 = 3840 “字符 0 周围的无效值”。用户信息={NSDebug 说明= 字符 0.} 周围的无效值:文件/库/缓存/com.apple.xbs/源/swiftlang_PONDEROSA/swiftlang_PONDEROSA-700.1.101.6/src/swift/stdlib/公共/核心/错误类型.swift,第 50 行

 func uploadImages(imageData: NSData, withParams requestDict:NSDictionary, callBack:(responseDict: NSDictionary?, error: NSError?) -> ())
    {

        print(requestDict)
        let boundary = generateBoundaryString()

        let url:NSURL = NSURL(string: String(format: "%@%@", BASE_URL, IMAGE_UPLOAD_API))!
        let request = NSMutableURLRequest(URL: url)
        request.HTTPMethod = "POST"
        request.timeoutInterval          = FLOAT_CONSTANT_60
        request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")

        request.HTTPBody = createBodyWithParameters(requestDict as? [String : AnyObject], filePathKey: "image", imageData: imageData, boundary: boundary)

        print(requestDict)
        NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler:{ (response: NSURLResponse?, data: NSData?, error: NSError?) in
            do {
                let JSON = try! NSJSONSerialization.JSONObjectWithData(data!, options:NSJSONReadingOptions.AllowFragments)
                guard let JSONDictionary :NSDictionary = JSON as? NSDictionary else {
                    print("Not a Dictionary")
                    //get your JSONData here from dictionary.

                    return
                }
                callBack(responseDict: JSON as? NSDictionary, error: nil)
                print("JSONDictionary! \(JSONDictionary)")

            }
            catch let JSONError as NSError {
                print("\(JSONError)")
                callBack(responseDict: nil, error: JSONError)

            }

        })

     }

共有1个答案

靳祺然
2023-03-14

由于我使用的API返回的json数据前面的一些无效字符/填充,我遇到了类似的问题。为了修复它,我必须在试图反序列化它之前去掉前几个字符。

var parsedDictionary: NSDictionary? = nil;
do{
   let loginResult = result.subdataWithRange(NSMakeRange(5, result.length - 5))
 parsedDictionary = try! NSJSONSerialization.JSONObjectWithData(loginResult, options: .AllowFragments) as? NSDictionary;
}

希望这有所帮助。

 类似资料:
  • 我是iOS新手。我收到此错误: Error Domain=NSCoaErrorDomain Code=3840"字符0周围的值无效。"UserInfo={NSDebugDescription=字符0周围的值无效。}反序列化JSON时出错:Error Domain=NSCoaErrorDomain Code=3840"JSON文本没有以数组或对象开头,也没有设置允许片段的选项。"UserInfo={

  • 使用阿拉莫菲尔。post api,在postman中而不是在我的代码中提供数据的api。在代码下面发帖,请指导我在这里做错了什么: 错误:失败:responseSerializationFailed(alamo fire。AFError . responseserializationfailure reason . jsonserializationfailed(Error Domain = NS

  • 问题内容: 这是我对Alamofire的要求,对于某些要求它有时可以工作,但有时我会得到: 我已经读到这可能是由于无效的JSON引起的,但是响应是我在JSON验证程序中验证为有效的静态JSON字符串。它确实包含åö字符和一些HTML。 为什么有时会出现此错误? 问题答案: 我也面临同样的问题。我尝试而不是,它的工作。我猜这是与一起使用时的错误。

  • 我收到此错误 错误域 = NSCocoa错误域代码 = 3840 “字符 746 周围的无效转义序列”。用户信息={NS诊断描述=字符 746 周围的无效转义序列。 下面是我解析JSON的代码: 使用此代码,我可以在其他API中获得响应对象。但在我的API中包含HTML标记。 我的问题是我得到的是JSON字符串,但它不是用JSON解析的。对于此API,我遇到错误 “错误域=NSCocoaError

  • 问题内容: 我的函数中不断出现此错误 我正在尝试读取数组answerRecord中的值。我使用一个全局变量arrayCount,它跟踪im当前指向哪个索引。 我在较早的函数中做了一个println,它为var arrayCount返回一个整数1的值,因此arrayCount不为空。因此,它应该能够将数组解释为: *假设arrayCount现在为1 answerRecord [arrayCount]

  • 我在颤振中使用了一个很长的列表。所有项目都呈现良好,但我也收到以下错误: 以下是我的代码: 下面是我的方法: 下面是我的方法: 以下是错误的屏幕截图: