本文共 1444 字,大约阅读时间需要 4 分钟。
**************从path中获取数据************
let path=Bundle.main.path(forResource: "shengshiquxianarea.plist", ofType: nil) let proviceDataArr:NSArray = NSArray(contentsOfFile:path!)!
String转成data
let str: NSString = "ZhuHai XY" let dataValue: Data = str.data(using: String.Encoding(rawValue: String.Encoding.utf8.rawValue), allowLossyConversion: true)! as Data//字符串转data
data转成String
let dat:String = String(data: dataValue as Data, encoding: String.Encoding.utf8)!//data转字符串
dada转成字典,最后是转成具体的字典类型
let json = try? JSONSerialization.jsonObject(with: returnResult.data!, options: JSONSerialization.ReadingOptions.allowFragments)as? [String:String]
字典序列化成data
let dict=["ss":"s"] let dictata = try? JSONSerialization.data(withJSONObject: dict, options: .prettyPrinted)
对象序列化与饭序列化,
如果要将一个对象持久化,需要把这个对象序列化。过去的做法是实现 NSCoding 协议,但实现 NSCoding 协议的代码写起来很繁琐,尤其是当属性非常多的时候。
Swift4 中引入了 Codable 协议,可以大大减轻了我们的工作量。我们只需要让需要序列化的对象符合 Codable 协议即可,不用再写任何其他的代码。
struct
Language
:
Codable
{
var
name:
String
var
version:
Int
}
Encode操作:可以直接把符合了 Codable 协议的对象 encode 成 JSON 或者 PropertyList。
|
Decode操作:
let
decodedData = try
JSONDecoder
().decode(
Language
.
self
, from: encodedData)
(decodedData.name, decodedData.version)
转载地址:http://hlmgi.baihongyu.com/