栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将快速字典写入文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将快速字典写入文件

无论如何,当您要存储

MyOwnType
到文件时,它
MyOwnType
必须是协议的子类
NSObject
并符合
NSCoding
协议。像这样:

class MyOwnType: NSObject, NSCoding {    var name: String    init(name: String) {        self.name = name    }    required init(prer aDeprer: NSCoder) {        name = aDeprer.depreObjectForKey("name") as? String ?? ""    }    func enpreWithCoder(aCoder: NSCoder) {        aCoder.enpreObject(name, forKey: "name")    }}

然后,这里是

Dictionary

var dict = [Int : [Int : MyOwnType]]()dict[1] = [    1: MyOwnType(name: "foobar"),    2: MyOwnType(name: "bazqux")]

所以,这是您的问题:

将快速字典写入文件

您可以

NSKeyedArchiver
用来写和
NSKeyedUnarchiver
阅读:

func getFileURL(fileName: String) -> NSURL {    let manager = NSFileManager.defaultManager()    let dirURL = manager.URLForDirectory(.documentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: false, error: nil)    return dirURL!.URLByAppendingPathComponent(fileName)}let filePath = getFileURL("data.dat").path!// write to fileNSKeyedArchiver.archiveRootObject(dict, toFile: filePath)// read from filelet dict2 = NSKeyedUnarchiver.unarchiveObjectWithFile(filePath) as [Int : [Int : MyOwnType]]// here `dict2` is a copy of `dict`

但在您的问题中:

如何快速将其写入 plist 文件或从中读取?

实际上,

NSKeyedArchiver

format是二进制plist。但是,如果你想要的字典 作为plist中的一个值
,你可以序列化
Dictionary
NSData
NSKeyedArchiver


// archive to datalet dat:NSData = NSKeyedArchiver.archivedDataWithRootObject(dict)// unarchive from datalet dict2 = NSKeyedUnarchiver.unarchiveObjectWithData(data) as [Int : [Int : MyOwnType]]


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/436428.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号