Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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
iOS-在swift 3中打印和存储字典数组_Ios_Arrays_Dictionary - Fatal编程技术网

iOS-在swift 3中打印和存储字典数组

iOS-在swift 3中打印和存储字典数组,ios,arrays,dictionary,Ios,Arrays,Dictionary,在我的项目中,我有一系列字典: var list = [[String: Any]] () 简单地说,我要做的是从URL下载一个JSON文件 // json parsing 2 let url:String = "https://jsonplaceholder.typicode.com/users" let urlRequest = URL(string: url) URLSession.shared.dataTask(with:

在我的项目中,我有一系列字典:

var list = [[String: Any]] ()
简单地说,我要做的是从URL下载一个JSON文件

//        json parsing 2
        let url:String = "https://jsonplaceholder.typicode.com/users"
        let urlRequest = URL(string: url)
        URLSession.shared.dataTask(with: urlRequest!, completionHandler: {(data, response, error) in
            if(error != nil)
            {
                print(error.debugDescription)
            }else{
                do {
                    self.list = try JSONSerialization.jsonObject(with: data!, options: .allowFragments)
                        as! [[String: Any]]
                    OperationQueue.main.addOperation {
                        self.tableView.reloadData()
                    }
                }catch let error as NSError{
                    print(error)
                }
            }
        }).resume()
现在,在列表(一系列字典)中,我拥有了我感兴趣的所有数据。但是如果我想挑选一个值,或者打印列表的全部内容,我该怎么做

编辑:另外,我可以简化结构,不使用数组 字典,但更简单的


或者您可以使用归档

import Foundation

class UserDataManager {

var documentsURL: NSURL?
var fileURL:NSURL?

func setFileURL(file: String) {
    documentsURL = FileManager.default.urls(for: .documentDirectory,
                                                   in: .userDomainMask)[0] as NSURL?
    fileURL = documentsURL!.appendingPathComponent(file) as NSURL?

}

func write(file: String, mDict: NSDictionary) {
    setFileURL(file: file)
    let data : NSData = NSKeyedArchiver.archivedData(withRootObject: mDict) as NSData
    if let fileAssigend = fileURL {
        data.write(to: fileAssigend as URL, atomically: true)
    }
}

func read(file: String) -> NSDictionary {
    setFileURL(file: file)

    var data:NSData?
    if let url = fileURL {
        data =  NSData(contentsOf: url as URL)
        if let result = data {
            return NSKeyedUnarchiver.unarchiveObject(with: result as Data) as! NSDictionary
        }
    }

    let dict = NSDictionary()

    return dict
}
}
和它一起使用

写:

        let userDataManager = UserDataManager()
        userDataManager.write(file: "userDataDict", mDict: responseObject)
阅读:


需要更多的信息。如果你在一个例子中写下你想解析的JSON以及你想用它做什么,也许我们可以让你参考解决方案。但是对于单元格来说很简单,它就像self.list[indexPath.row][“yourKey”]请看一下SwiftyJSON。它将简化这类任务。@AitorPagán我下载的json文件,我必须在tableView中表示,这部分我已经用
let item=self解决了。列出[indexPath.row]移动文本标签?。text=此[“名称”]为?字符串Mobile detailTextLabel?。text=此[“电子邮件”]为?String
在tableView的func中..我的问题是打印字典数组或accessit@Matteo正如@Retterdesdialogs所说,您可以通过数组的索引来访问它们。但是我要说的是,如果你可以编写JSON,只是为了引用你正在使用的东西。您可以使用打印方法
print(array)
        let userDataManager = UserDataManager()
        let userDataDict = userDataManager.read(file: "userDataDict")