Foundation框架基础 NSDictionary-字典

#import <Foundation/Foundation.h>
/*
  key 表示键
  value 表示值
 
 【掌握】概念:字典是一个无序的集合,它使通过键值对的方式来存储数据的
  key是有要求  NSCopying才能成为字典key,一般情况都是使用字符串作为字典的key
  NSDictionary 不可变得字典,一经创建里面的元素就不可以改变了
  Person
  age:@10
  name:@“张三“
 
 */

int main(int argc, const char * argv[]) {
   
@autoreleasepool {

//      使用简便方式来创建字典
        NSDictionary *dict1 = @{@"age":@20,@"name":@"apple",@"height":@1.8};

//      字典写文件
        NSString *path = @"/Users/apple/Desktop/测试.txt";

//      如果返回YES表示写入成功
       
BOOL isSuccess = [dict1 writeToFile:path atomically:YES];
       
if(isSuccess){
           
NSLog(@"写入成功!");
        }
       
//      从文件中读取字典
       
NSDictionary *dict  =  [NSDictionary dictionaryWithContentsOfFile:path];
        NSLog(@"%@",dict);
    }
   
return 0;
}

void testBianLi()
{
   
//      使用简便方式来创建字典
   
NSDictionary *dict1 = @{@"age":@20,@"name":@"apple",@"height":@1.8};
   
   
//    第一种方式:先取出字典中的keys,然后使用数组的方式对keys遍历
   
//     取出所有key
   
//        [dict1 allKeys];
    NSArray *keys =  dict1.allKeys;

    //     使用数组方式来遍历keys
   
//        for (NSString *key in keys) {
   
//
   
//            NSLog(@"%@ = %@",key,dict1[key]);
   
//
    //        }

    ////   第二种方式,使用增强for(掌握)
   
//        for (NSString *key in dict1) {
   
//            NSLog(@"%@ = %@",key,dict1[key]);
    //        }

    //    第三种方式 枚举器(不常用)
   
NSEnumerator *keyEnumerator =  dict1.keyEnumerator;
   
NSString *key = nil;
   
while ((key = keyEnumerator.nextObject)) {
       
NSLog(@"%@ = %@",key,dict1[key]);
    }

    //     取出字典中所有值
   
NSArray *values  = dict1.allValues;
   
for (id value in values) {
       
NSLog(@"%@",value);
    }

    //     第四种 使用block的方式
    [dict1
enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
       
NSLog(@"%@ : %@",key,obj);
    }];
}

void testDictCreate()
{
   
//      创建一个字典对象,value,key,value,key,值,键...  来创建的
   
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@10,@"age",@"张三",@"name", nil];
   
    NSLog(@"%@",dict);

    //      取出某个键所对应的值
   
NSNumber *number = [dict objectForKey:@"age"];
    NSLog(@"%@",number);

    //      简便的取值方式(常用)
   
NSString *name = dict[@"name"];
   
NSLog(@"%@",name);
   
   
//      使用简便方式来创建字典
   
NSDictionary *dict1 = @{@"age":@20,@"name":@"apple",@"height":@1.8};
   
NSNumber *age1 = dict1[@"age"];
   
NSLog(@"%@",age1);
   
NSLog(@"%@",dict1);
   
   
//      取出字典长度,字典中有几个键值对
   
long  len = dict1.count;
    len = [dict1
count];
    NSLog(@"%zd",len);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值