OC基礎第四講 字典

2021-07-06 10:56:58 字數 3152 閱讀 1370

//字典類 /*

字典用於儲存具有對映關係(key-value)的資料集合

對於name:張三來講,name就是key,key對應的value就是張三

乙個key-value的組合被認為是乙個條目,字典是儲存key-value對容器

字典類的特點:

與陣列不同,字典靠key訪問元素(陣列是通過下標來訪問元素)

key不能重複,value必須是物件(如果不是物件用  nsnumber,nsvalue)

鍵值對在字典中是無序儲存的

字典也分可變字典和不可變字典

不可變字典:字典一旦建立,鍵值不能更改,不可新增,不可刪除,僅能讀取key或value

可變字典:字典建立後,鍵值可以更改,可以新增,可以刪除,也能讀取key或value

字典中元素是成對出現的,不能出現單數個(鍵值對鍵值對,有鍵有值是一對)

吃飯睡覺打鍵盤*/

//建立字典  nsdictionary

nsdictionary*dic = [[nsdictionaryalloc]initwithobjectsandkeys:

@"benz",@"car1",

@"zhang",@"car2", @"

吃飯",@"car3", @"

睡覺",@"car4", @"

打豆豆",@"car5", @"

其實是打鍵盤

",@"car6",nil];

//        //獲取字典元素個數

//        nsuinteger count = dic.count;

//        nslog(@"count = %lu",count);

//        

獲取所有key值

//        nsarray *allkeyarray = dic.allkeys;

//        

//        for (int i = 0; i

//            nslog(@"allkeyarray[%d] = %@",i,[allkeyarray objectatindex:i]);

//        }

// //        nslog (@"%@",[dic allkeys]);

//        

//        

獲取所有value值

//        nsarray *allvaluesarray = dic.allvalues;

//        

//        for (int i = 0; i

//            nslog(@"allvaluesarray[%d] = %@",i,[allvaluesarray objectatindex:i]);

//        }

//             nslog (@"%@",[dic allvalues]);

//        

//        

//        //通過key查詢value值

//        nsstring *car1 = [dic valueforkey:@"car1"];

//        nslog(@"car = %@",car1);

//        

//        nsstring *car2 = [dic valueforkey:@"car2"];

//        nslog(@"car = %@",car2);

//    

//可變字典

// 初始化方法

nsmutabledictionary*mdictionary = [[nsmutabledictionaryalloc]initwithobjectsandkeys:

@"benz",@"car1",

@"zhang",@"car2", @"

吃飯",@"car3", @"

睡覺",@"car4", @"

打豆豆",@"car5", @"

其實是打鍵盤

",@"car6",nil];

//使用已經存在的不可變字典初始化乙個新的可變字典

//        nsmutabledictionary *mdic1 = [[nsmutabledictionary alloc]initwithdictionary:dic];

//        

//        //使用便利構造器方法建立乙個新的空的可變字典

//        nsmutabledictionary *mdic2 = [nsmutabledictionary dictionary]; //

//增刪改

//新增元素

//向字典中新增value和key

[mdictionary setvalue:@"valuezhi"

forkey:@"keyzhi"];

nslog(@"%@",mdictionary);

//向乙個字典中新增乙個字典

nsdictionary*dict4=[nsdictionarydictionarywithobject:

@"value6"

forkey:

@"key6"

];[mdictionary addentriesfromdictionary:dict4];

nslog(@"%@",mdictionary);

//向字典中新增value和key

[mdictionary setvalue:@"valuezhi"

forkey:@"keyzhi"];

nslog(@"%@",mdictionary);

//刪除元素

//移除指定key的value值

[mdictionary removeobjectforkey:@"car1"];

nslog(@"%@",mdictionary);

//刪除一組key的value值

nsarray *arraykeys=[nsarray

arraywithobjects:@"car1",@"car2",@"car3",nil];

[mdictionary removeobjectsforkeys:arraykeys];

nslog(@"%@",mdictionary);

OC第四講記憶體管理

第一題 定義兩個類,借用retaincount和dealloc方法測試以下記憶體管理方法 alloc retain copy release autorelease。記憶體管理的方式分為 mrc 手動 和arc 自動 使用alloc retain copy引用計數 retaincount 加一 使用...

視覺SLAM十四講第四講

主要目標 理解李群與李代數的概念,掌握 so 3 se 3 與對應李代數的表示方式。理解 bch 近似的意義。學會在李代數上的擾動模型。使用 sophus 對李代數進行運算。旋轉矩陣自身是帶有約束的 正交且行列式為 1 它們作為優化變數時,會引入額外的約束,使優化變得困難。通過李群 李代數間的轉換關...

OC 第四講作業

簡易通訊錄 import inte ce addresscontact nsobject property nsstring name 姓名 property nsstring 性別 property nsstring phonenumber 號碼 property nsstring address...