美文网首页
Swift给Data类扩展读写方法

Swift给Data类扩展读写方法

作者: 恶趣味鱼 | 来源:发表于2017-03-27 16:03 被阅读662次

Data类的一个简单的扩展,用来转换json和读写。

let cachePath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory,FileManager.SearchPathDomainMask.userDomainMask, true).first

let cachePathUrl = URL(fileURLWithPath: cachePath!)

extension Data {
    /// json->Data
    init?(json:Any) {
        if JSONSerialization.isValidJSONObject(json),let data = try? JSONSerialization.data(withJSONObject: json) {
            self.init(data)
        }else {
            return nil
        }
    }
    /// Data->json
    func json() -> Any? {
        return  try? JSONSerialization.jsonObject(with: self)
    }
    /// wirte data
    func write(toCachefilename:String) -> Bool {
        try? FileManager.default.createDirectory(at: cachePathUrl, withIntermediateDirectories: true, attributes: nil)
        
        let url = cachePathUrl.appendingPathComponent(toCachefilename)
        do {
            try self.write(to: url)
            return true
        }catch {
            return false
        }
    }
    /// read data
    init?(cachefileName:String) {
        let url = cachePathUrl.appendingPathComponent(cachefileName)
        do {
            try self.init(contentsOf: url, options: .alwaysMapped)
        }catch {
            return nil
        }
    }
}

相关文章

网友评论

      本文标题:Swift给Data类扩展读写方法

      本文链接:https://www.haomeiwen.com/subject/dnyrottx.html