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

Error Domain=NSCocoaErrorDomain Code=3840“无值。”UserInfo={NSDebugDescription=无值。}

龚博涛
2023-03-14

我正在学习JSON。我在从URL解析JSON时遇到问题。错误是“Error Domain=NSCocoaErrorDomain Code=3840”无值。“UserInfo={NSDebugDescription=无值。}”

JSON是有效的-我已经检查过了。这是JSON的结构:

[{"id":33,"name":"5","sort":2},{"id":34,"name":"6","sort":3},{"id":35,"name":"7","sortOrder":4}]

这是我的代码:导入UIKit

class ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()


    let urlAsString = "http://www.url.address/"
    let url = NSURL(string: urlAsString)!
    let urlSession = NSURLSession.sharedSession()
    let username = "admin"
    let password = "admin"

    struct Address {

        let name: String?
        let id: String?
        let sortOrder: String?

        init(dict: [String: AnyObject]) {

            name = dict["name"] as? String
            id = dict["id"] as? String
            sortOrder = dict["sort"] as? String
        }
    }
    let path = NSBundle.mainBundle().pathForResource("sections", ofType: "json")
    let jsonData = NSData()

    do {
        if let jsonDic = try NSJSONSerialization.JSONObjectWithData(jsonData,
            options: .MutableContainers) as? [String: AnyObject] {

                let addr = Address(dict: jsonDic)                    
                print("jsonDic")
        }

        } catch let error as NSError {
            print(error)
        }
}
func backButton(sender: AnyObject) {
    self.dismissViewControllerAnimated(true, completion: {})
}

}

共有1个答案

东方国安
2023-03-14

您需要实际使用文件中的数据

保护let path=NSBundle.mainBundle(). path ForResource("区段", ofType:"json"), let jsonData=NSData(content sOfFile: path)否则{FatalError("无法在主包中找到或加载区段文件")}做{如果让区段=尝试NSJSONSerialization.JSONObjectWithData(jsonData,选项:. MutableContainers)作为?[String: AnyObject] { // 与区段一起工作}…

 类似资料:
  • 问题内容: 当我运行代码时,出现此错误,我不知道为什么。 错误域= NSCocoaErrorDomain代码= 3840“无值。” UserInfo = {NSDebugDescription =无值。} 我在互联网上寻找它,但没有找到任何东西。 这是我的代码: 谢谢您的帮助 问题答案: 您需要将content-type标头值设置为使用JSON。 将代码更新为Swift 3,并删除了与请求无关的所

  • 我是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

  • 问题内容: 我正在在线关注CS106A的讲座。我正在阅读第12讲中的代码,但这给了我Eclipse错误。 这是我的代码。似乎错误是由于我的方法中的单词void 。我尝试删除main方法,但是没有它,Java当然无法运行。 我是一名新手,没有人解释这东西的真正含义,但有人告诉我,请不要理会它并使用它。如果有人也可以向我解释,我将不胜感激。 这个错误也出现在“ toLower”方法上。不知道这意味着什

  • 我正在尝试将图像上载到服务器,它工作正常,但偶尔我会在下面的代码中收到try语句错误。这就是错误所说的 致命错误:“try!”表达式意外引发错误:错误域 = NSCocoa错误域代码 = 3840 “字符 0 周围的无效值”。用户信息={NSDebug 说明= 字符 0.} 周围的无效值:文件/库/缓存/com.apple.xbs/源/swiftlang_PONDEROSA/swiftlang_P

  • 问题内容: 我正在使用AFNetworking库通过POST方法在服务器上发布数据。 以下是我的代码 但是我得到以下错误响应 我不明白代码有什么问题。 问题答案: 问题来自响应解析。您正在尝试反序列化响应(必须包含在a 或中),但是您的响应不是以上所有(很可能是简单的字符串)。 另外,尝试将“允许片段”设置为响应序列化程序。