黑馬程式設計師 字典 NSDictionary

2021-06-25 07:02:59 字數 3071 閱讀 7961

------- ios開發

、ios培訓

、期待與您交流! -------字典

nsdictionary\nsmutabledictionary

* 無序

* 快速建立(不可變):@

* 快速訪問元素:字典名[key]

key ----> value

索引 ----> 文字內容

裡面儲存的東西都是鍵值對

/*------------------------------建立可變字典----------------------*/

//建立

// 1、鍵值對分別都用陣列存放方式

nsarray

*keys =

@[@"name",@"qq",@"address"];

nsarray

*objcets =

@[@"jack",@"21653462",@"beijing"];

nsdictionary *dict = [nsdictionary

dictionarywithobjects:objcets forkeys:keys];

id obj = [dict objectforkey:@"name"];

// id obj = dict[@"name"];

nslog(@"%@",obj);

//返回的是鍵值對的個數,這裡是3

nslog(@"%ld",dict.count);

// 輸出所有的key

nslog(

@"%@"

, dict.allkeys);

// 是以qq = 21653462;這種形式列印

nslog(@"%@",dict);

// 2、objectsandkeys同時羅列出來這種方式,注意這種方式返回的型別是不可變的

nsdictionary *dict = [nsdictionary dictionarywithobjectsandkeys:

@"jack",@"name",

@"beijin",@"address",

@"2413241",@"qq",nil];

// 3、快捷方式,編譯器會自動轉成上面的方式,注意這種方式返回的型別是不可變的

nsdictionary *dict = @;

//  新增字典,

//  1、如果key重複了,會覆蓋之前的值;

//  2、乙個key只能對應乙個object,但是乙個object可以對應多個key

nsmutabledictionary

*dictionary = [nsmutabledictionary

dictionary];

[dictionary setobject:@"one"

forkey:@"1"];

[dictionary setobject:@"two"

forkey:@"2"];

[dictionary setobject:@"three"

forkey:@"3"];

[dictionary setobject:@"four"

forkey:@"4"];

nslog(@"dictionary:%@",dictionary);

//刪除指定的字典

[dictionary removeobjectforkey:@"3"];

nslog(@"dictionary:%@",dictionary);

/*------------------------------ 遍歷字典 ----------------------*/

// 1、利用for迴圈來遍歷字典

// 取出所有的key,雖然存在陣列裡,但實際還是無序的

nsarray *keys = [dict allkeys];

for (int i = 0; icount; i++)

// 2、利用方法來遍歷字典,比較好

[dict enumeratekeysandobjectsusingblock:

// 每遍歷到乙個元素,就會呼叫一次block

// 並且當前元素和索引位置當做引數傳給block

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

黑馬視屏,湯姆貓裡的一段:

//1.獲得 tom.plist的全路徑

// 如果要訪問專案中資源包裡面的所有資源,應該用mainbundle

nsbundle *bundle = [nsbundle

mainbundle];

// 獲得檔案的全路徑

nsstring *path = [bundle pathforresource:@"tom"

oftype:@"plist"];

//2.根據檔案路徑載入字典

nsdictionary

*dict = [

nsdictionary

dictionarywithcontentsoffile:path];

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

//3.取出按鈕文字

nsstring

*title = [sender titleforstate:uicontrolstatenormal];

int count = [dict[title] intvalue];

// 1.載入plist,array中裝得都是nsdictionary物件

nsstring

*path = [[

nsbundle

mainbundle] pathforresource:

@"shops"

oftype:

@"plist"];

// 載入path對應的檔案來建立陣列

nsarray *array = [nsarray

arraywithcontentsoffile:path];

將字典匯入.plist 檔案中存放

- (void)viewdidload

黑馬程式設計師

asp.net android ios開發 net培訓 期待與您交流!map hashtable 底層是雜湊表資料結構,不可以存入null鍵和null值。該執行緒是同步的,jdk1.0出現,效率低。hashmap 底層是雜湊表資料結構,允許使用null鍵和null值。該集合執行緒是不同步的,將has...

黑馬程式設計師

1.了解反射 反射 就是通過class檔案物件,去使用該檔案中的成員變數,構造方法,成員方法。person p new person p.使用 要想這樣使用,首先你必須得到class檔案物件,其實也就是得到class類的物件。2.反射中的類 class類 成員變數 field類 構造方法 const...

黑馬程式設計師

黑馬程式設計師 j a基礎學習筆記2 一 筆記內容概述 關鍵字 識別符號 注釋 注釋的應用 常量 進製的由來 進製轉換 負數的進製 變數的介紹 變數的基本演示 型別提公升 強制轉換 字元型別運算過程 型別運算細節 算術運算子 賦值運算子。二 常用內容介紹 1.注釋內容不占用記憶體,即使新增再多的注釋...