Objective C 詞典與集合

2021-07-05 04:05:42 字數 3017 閱讀 9074

詞典(dictionary)是由鍵——物件對組成的資料集合。在與詞典中找單詞定義一樣,可以通過物件的鍵從objective-c詞典中獲取需要的值(即那個物件)。詞典中的鍵必須是單值的,通常他們是字串,但也可以是其他物件型別。和鍵關聯的值可以是任意物件型別,但不能是nil。

建立乙個空字典

nsdictionary * dic = [nsdictionary dictionary];

//2. 建立並初始化

// dictionarywithobject:(id)forkey:(id)

nslog(@"%@", dic1);

//3.建立並返回乙個字典。

// dictionarywithobjects:forkeys

nsarray * keys = [nsarray arraywithobjects:@"name", @"***", @"age", nil];

nsdictionary * dic3 = [nsdictionary dictionarywithobjects:values forkeys:keys];

nslog(@"%@", dic3);

//4.使用鍵-物件對、...建立詞典

// dictionarywithobjectsandkeys

nsdictionary * dic4 = [nsdictionary dictionarywithobjectsandkeys:

@25, @"age", nil];

nslog(@"%@", dic4);

//5. @ 自變數

nslog(@"@ = %@", dic5);

// allkeys 返回乙個陣列包含詞典中所有的鍵

nslog(@"allkeys:%@", [dic5 allkeys]);

//allkeysforobject: 返回乙個陣列,包含所有對應到給定物件的關鍵字。

nslog(@"aaaaaaa%@", [dic5 allkeysforobject:aa]);

//allvalues:返回乙個陣列包含詞典中所有的值

nslog(@"allvalues:%@", [dic5 allvalues]);

//objectforkey:返回指定 key 的 value,若沒有這個 key 返回 nil.

nslog(@"%@", [dic5 objectforkey:@"name"]);

//valueforkey 同樣是返回指定 key 的 value。

nslog(@"%@", [dic5 valueforkey:@"name"]);

//objectsforkeys:< #(nsarray *)#> notfoundmarker:< #(id)#>

// 根據給定的鍵值陣列返回對應的值,如果找不到則返回 notfoundmarker

nslog(@"%@", [dic5 objectsforkeys:@[@"name", @"age", @"***"] notfoundmarker:@"not"]);

//count:返回字典中的記錄數

nslog(@"count:%zi", [dic5 count]);

//遍歷字典中的key

nslog(@"遍歷字典\n\n");

//迭代器遍歷

nsenumerator * keyenum = [dic5 keyenumerator];

id key = nil;

while (key = [keyenum nextobject])

//快速遍歷

for (id key in dic5)

//遍歷字典中的value

for (id key in dic5)

//block遍歷

[dic5 enumeratekeysandobjectsusingblock:

^(id key, id obj, bool *stop) ];

//可變字典

nsmutabledictionary * dic2 = [nsmutabledictionary dictionary];

//setobject: forkey: 新增value與key,如果key存在則替換該值

[dic2 setvalue:@"hh" forkey:@"100"];

[dic2 setvalue:@"kj" forkey:@"哈哈"];

nslog(@"%@", dic2);

//removeobjectforkey 刪除詞典中指定key對應的記錄

[dic2 removeobjectforkey:@"100"];

nslog(@"%@", dic2);

//removeallobjects 刪除詞典中的所有記錄

[dic2 removeallobjects];

nslog(@"%@", dic2);

nsdictionary * diction1 = [nsdictionary dictionarywithobjectsandkeys:

@15, @"age",nil];

nsdictionary * diction2 = [nsdictionary dictionarywithobjectsandkeys:

@"android", @"name",

@28, @"age",nil];

//isequaltodictionary 比較兩個字典

if([diction1 isequaltodictionary:diction2])else

// writetofile 把字典寫入檔案(xml格式)

nsstring * path = @"/users/simman/diction1.xml";

[diction1 writetofile:path atomically:yes];

//dictionarywithcontentsoffile 讀取乙個檔案返回給新的字典物件

nsdictionary *newdic = [nsdictionary dictionarywithcontentsoffile:path];

objective c之集合家族

nsarray是乙個cocoa類,用來儲存物件的有序列表,你可以在其中放入任意型別的物件 nsstring或者是其他你想要儲存的物件,但只能是儲存objective c的物件,而不能儲存c語言中的基本資料型別,如int float enum struct,或者nsarray中的隨機指標,同時也不能在...

學習iOS 3 陣列 詞典和集合

int main int argc,const char ar 建立不可變陣列 方式二 nsarray arr1 周一 周二 週三 周四 周五 週六 週日 for int i 0 i int main int argc,const char ar marr addobject 4 for int i...

Objective C 目錄與檔案操作

nsfilemanager 用於檔案操作的方法 方法說明 bool createfileatpath nsstring path content nsdata contents attributes nsdictionary attributes 建立具有 contents 的內容,以及 attri...