- 不要等到明天,明天太遙遠,今天就行動。
須讀:看完該文章你能做什么?
NSDictionary的基本使用
學習前:你必須會什么?(在這里我已經默認你具備C語言的基礎了)
適合所有人,不需要懂的什么
注:(小白直接上手)
一、本章筆記
key(標識) 為了方便查找那個值
一、字典
1.如何創建
+ (instancetype)dictionaryWithObject:(ObjectType)object forKey:(KeyType <NSCopying>)key;
+ (instancetype)dictionaryWithObjects:(NSArray<ObjectType> *)objects forKeys: (NSArray<KeyType <NSCopying>> *)keys;
獲取
- (nullable ObjectType)objectForKey:(KeyType)aKey;
2.字典的三種遍歷方式
2.1 for
2.2 for in
2.3 block
- (void)enumerateKeysAndObjectsUsingBlock:(void (NS_NOESCAPE ^)(KeyType key, ObjectType obj, BOOL *stop))block NS_AVAILABLE(10_6, 4_0);
3.字典的文件讀寫
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;
+ (nullable NSDictionary<KeyType, ObjectType> *)dictionaryWithContentsOfFile:(NSString *)path;
二、code
main.m
#pragma mark 08-NSDictionary
#pragma mark - 代碼
#import <Foundation/Foundation.h>
#pragma mark 類
#pragma mark - main函數
int main(int argc, const char * argv[])
{
#pragma 1.如何創建
NSDictionary *dict = [NSDictionary dictionaryWithObject:@"lyh" forKey:@"name"];
NSString *name = [dict objectForKey:@"name"];
NSLog(@"name = %@",name);
// 注意 : key 和 value 是一一對應的
NSDictionary *dict2 = [NSDictionary dictionaryWithObjects:@[@"lyh",@"25"] forKeys:@[@"name",@"age"]];
NSLog(@"%@ %@",[dict2 objectForKey:@"name"],[dict2 objectForKey:@"age"]);
#pragma 創建、獲取的快捷方式
// NSDictionary *dict3 = @{key:value};
NSDictionary *dict3 = @{@"name":@"lyh"};
NSLog(@"name = %@",dict3[@"name"]);
NSDictionary *dict4 = @{@"name":@"lyh",@"age":@"25",@"height":@"171.1"};
NSLog(@"name = %@ , age = %@",dict4[@"name"],dict4[@"age"]);
#pragma 2.字典的遍歷
// 方式1 for
/*
// 2.1 如何獲取字典中 的 key 和 value的個數,在字典中 key稱之為鍵, value稱之為值
NSLog(@"count = %lu",[dict4 count]);
for (int i = 0 ; i < dict4.count; ++i) {
// 獲取字典中所有的key
NSArray *keys = [dict4 allKeys];
// 期初當前位置對應的key
// NSLog(@"%@",keys[i]);
NSString *key = keys[i];
NSString *value = dict4[key];
NSLog(@"key = %@, value = %@",key,value);
}
*/
// 方式2 for in
/*
// 如果通過forin 遍歷 ,會將所有的key賦值給前面的obj
for (NSString *key in dict4) {
NSLog(@"%@",key);
NSString *value = dict4[key];
NSLog(@"key = %@, value = %@",key,value);
}
*/
// 方式3 迭代器
[dict4 enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
NSLog(@"key = %@, value = %@",key,obj);
}];
#pragma 3.字典的文件讀寫
// 寫
[dict4 writeToFile:@"/Users/liyuhong165/Desktop/temp/day08/abcd.plist" atomically:YES];
// 讀
// 注意 : 字典 和 數組不同, 字典中保存的數據是無序的
NSDictionary *newDict = [NSDictionary dictionaryWithContentsOfFile:@"/Users/liyuhong165/Desktop/temp/day08/abcd.plist"];
NSLog(@"newDict = %@",newDict);
return 0;
}
Person
>>>.h
>>>.m