詞典(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...