Dictionary字典
2018-12-05 本文已影响0人
架构师的一小步
初始化
//初始化方式1
let dic=["productid":323129]
//初始化方式2 <String,Int> key (string类型) value (Int类型)
let dic1:Dictionary<String,Int>=["productid":323129]
//初始化方式3
let dic2:[String:Int]=["productid":323232]
//初始化方式4
let empty=Dictionary<String,Int>()
//初始化方式5
let empty1=[String:Int]()
获取值
let id=dic["productid"] //323129
//dic没有给key为productid1设置值,所以会出现空
let id=dic["productid1"] //nil
修改值
var dic=["pro":323129]
//将key为pro的值改为43345
dic["pro"]=43345
//修改key为pro的值变成22333,返回开始的值43345
let oldId=dic.updateValue(22333, forKey: "pro")
删除值
var dic=["pro":323129]
//删除key为pro的value值
// dic["pro"]=nil
//如果这个key原来存在的话会返回这个key原来所对应的value
let oldId=dic.removeValue(forKey: "pro1")
//判断dic是否为空
if dic.isEmpty
{
print("dic is empty")
}
获取网址的key,value值
let url="http://www.kaola.com/?navindex=1&zn=top"
/**
*第一种方式
*/
//获取url额components
let urlComponent=NSURLComponents(string: url)!
//取出components中的queryItems的key value
for queryItem in urlComponent.queryItems!{
print(queryItem.name)
print(queryItem.value)
}
/**
*第二种方式
*/
//获取?的位置
let range=url.range(of: "?")!
//获取url在range和url.endIndex的值
let queryString=url[url.index(after: range.lowerBound)..<url.endIndex]
//对带&的进行拆分
let componts=queryString.components(separatedBy: "&")
//空字典
var parameters=[String:String]()
//循环遍历将值存到字典中
for component in componts{
//对值进行二次拆分通过=号
let keyValue=component.components(separatedBy: "=")
parameters[keyValue[0]]=keyValue[1];
}