oc 字典集合簡單使用

2021-07-05 15:09:55 字數 4816 閱讀 1328

//    字典類用於存放具有對映關係的資料

// kay是唯一的⚠️ value是物件 無序存放

// nsdictionary❤️

// 1 、以鍵值對的形式進行儲存 即 kay-value

// 2 、字典靠key找到相應的value物件 key不能重複 但是value可以重複

// 3 、字典無序存放⚠️

// ->->->->->->->->->->->->->->->->例項化不可變的字典物件

/*nsdictionary *d1 = @;

// nslog(@"%@",d1);

// initwithobjectsandkeys 乙個value 乙個key ⚠️

nsdictionary *d2 = [[nsdictionary alloc]initwithobjectsandkeys:@"obj1",@"key1",@"obj2",@"key2", nil];

// nslog(@"%@",d2);

// 用乙個字典給另乙個字典初始化

nsdictionary *d3 = [[nsdictionary alloc]initwithdictionary:d2];

// nslog(@"%@",d3);

nsdictionary *d4 = [nsdictionary dictionarywithdictionary:d3];

nslog(@"%@",d4);

nsdictionary *d5 = [nsdictionary dictionarywithobject:@"da" forkey:@"key"];//key遵循nscopying協議的物件

nslog(@"%@",d5);

nsdictionary *d6 = [nsdictionary dictionarywithobjectsandkeys:@"obj1",@"key1",@"obj2",@"key2", nil];

nslog(@"%@",d6);

nsdictionary *d7 = [nsdictionary dictionarywithobjects:@[@"v1",@"v2"] forkeys:@[@"k1",@"k2"]];

nslog(@"%@",d7);

//->->->->->->->->->->->->->->-> 獲取字典物件個數

nslog(@"%lu", [d1 count]);

//->->->->->->->->->->->->->->-> 獲取所有的key 和 value

nsarray *a = [d1 allkeys];

nslog(@"%@",a);

nsarray *b = [d1 allvalues];

nslog(@"%@", b);

//->->->->->->->->->->->->->->-> 通過key 獲取 value

// valueforkey 不安全 key裡不能有@ 否則會崩 objectforkey 不會崩 返回null

nslog(@"%@", [d1 valueforkey:@"k1"]); //kvc

nslog(@"%@", [d1 objectforkey:@"k2"]);

*//*

//->->->->->->->->->->->->->->->nsmutabledictionary

//->->->->->->->->->->->->->-> 建立可變字典物件

// 空的 使用之前必須進行初始化 、、、、、、、、、、、、、、、、、、

nsmutabledictionary *md1 = [[nsmutabledictionary alloc]init];

nsmutabledictionary *md2 = [nsmutabledictionary dictionary];

//->->->->->->->->->->->->->-> 新增鍵值對

[md1 setvalue:@"v1" forkey:@"k1"];// value 可以為空 但不會新增到字典中

[md1 setobject:@"v2" forkey:@"k2"];

[md1 setobject:@"v3" forkey:@"k3"];//value 不能為空 否則會崩

nslog(@"%@",md1);

//->->->->->->->->->->->->->-> 修改key對應的value

[md1 setvalue:@"v2" forkey:@"k1"];

nslog(@"%@",md1);

//->->->->->->->->->->->->->-> 刪除鍵值對

// [md1 removeobjectforkey:@"k1"];

// [md1 removeobjectsforkeys:@[@"k1",@"k2"]];

// [md1 removeallobjects];

// nslog(@"%@",md1);

//->->->->->->->->->->->->->-> 迴圈遍歷字典

// nsarray *arr = [md1 allkeys];

// for (int i = 0 ; i < [md1 count]; i++)

//得到的是所有的 key ⚠️

for (id ob in md1)

*//* 字面量

基本的數值型別的字面量:

@數值 nslog(@"%@",@32);

@(數值)

bool a = yes;

nslog(@"%@",@(a));//可以把乙個數值型別的變數轉化為物件型別 需要加();

字串 @""

陣列 @[obj,...]

字典@*/

/*// ->->->->->->->-> 集合: 唯一性 無序性 都是物件型別

// ->->->->->->->-> 建立集合物件

nsset *s1 = [[nsset alloc]initwithobjects:@"s1",@"s2",@"s2",@(23),@(1), nil];

nslog(@"%@",s1);

nsset *s2 = [[nsset alloc] initwitharray:@[@"ss",@"ss",@"s"]];//陣列轉換為集合 集合特性 :去除重複

nslog(@"%@",s2);

nsset *s3 = [[nsset alloc] initwithset:s1];

nslog(@"%@",s3);

nsset *s4 = [nsset setwithobject:@"dgygi"];

nslog(@"%@",s4);

//->->->->->->->->獲取集合的個數

nslog(@"%lu",[s1 count]);

//->->->->->->->-> 獲取集合中的某個元素

nslog(@"%@",[s1 anyobject]);//隨機某個

//->->->->->->->-> 是否包含某個元素

nslog(@"%d",[s1 containsobject:@"s1"]);

//->->->->->->->-> 取出集合中的所有元素

nsarray *a = [s1 allobjects];//轉換為陣列

nslog(@"%@",a);

//->->->->->->->->nsmutableset 可變的 建立可變集合物件

nsmutableset *s5 = [nsmutableset setwithset:s1];

//->->->->->->->->新增元素

[s5 addobjectsfromarray:@[@"ss",@"ds"]];

[s5 addobject:@(32)];

nslog(@"%@",s5);

//->->->->->->->->設定元素 (重置)

// [s5 setset:s4];//相當於重置內容為 s4 中的值

// nslog(@"%@",s5);

//->->->->->->->->刪除元素

[s5 removeobject:@"ss"];

nslog(@"%@",s5);

[s5 removeallobjects];

nslog(@"%@",s5);

//->->->->->->->->nscountedset

nscountedset *cs1 = [nscountedset setwithobjects:@"as",@2,@3,@"2",@"3",@"as",@"ad",@"ad",@"ad", nil];

nslog(@"%@",cs1);

nslog(@"%lu",[cs1 countforobject:@"as"]);//獲取某個字元出現的次數

[cs1 removeobject:@"ad"]; //移除 每次只能去掉乙個

nslog(@"%@",cs1);

for (id obj in cs1)

*/

/*

sel 類成員方法的指標

可以理解@selector()就是取類方法的編號,他的行為基本可以等同c語言中函式指標,只不過c語言中,可以把函式名直接賦給乙個函式指標,而oc的類不能直接應用函式指標,這樣只能做乙個@selector語法來取

他的結果是乙個sel型別。這個型別本質是類方法的編號(函式位址)

注意:1@selector是查詢當前類(含子類)的方法;

*/

sel簡介

OC 學習 陣列,字典,集合

main.m oc 學習 陣列等等 created by binmac on 13 12 6.import int main int argc,const char argv 上面的方法效率很低 for nsstring str3 in marray3 for in實際上是快速列舉,跟for迴圈意義...

oc之常用類(二)字典,集合

1.字典是 以大括號括起來的 並且用是鍵值對的形式儲存資料,字典裡可以存放不同物件型別的資料,前提是物件型別字典裡存放的資料都是無序的 字典的初始化化 value 在前後邊跟著他的 key值 不可變字典 nsdictionary dic nsdictionary dictionarywithobje...

OC字典的使用省市區

大概思路就是這樣,下面是 部分。匯入省市區 nsstring str nsstring stringwithcontentsoffile users dllo desktop jeson jeson area.txt encoding nsutf8stringencodingerror nil 將省...