您的位置:首页 > 移动开发 > Objective-C

foundation的使用——NSDictionary

2015-12-14 11:05 393 查看
/*

 集合

 1.NSArray\NSMutableArray

 *
有序

 *
快速创建(不可变):@[obj1, obj2, obj3]

 *
快速访问元素:数组名[i]

 

 2.NSSet\NSMutableSet

 *
无序

 

 3.NSDictionary\NSMutableDictionary

 *
无序

 *
快速创建(不可变):@{key1 : value1,  key2 : value2}

 *
快速访问元素:字典名[key]

 */

void use()

{

    /*

     字典:

     

     key ----> value

     索引 ----> 文字内容

     

     里面存储的东西都是键值对

     

     

     */

    

    // NSDictionary *dict = [NSDictionary dictionaryWithObject:@"jack" forKey:@"name"];

    

    

    // NSArray *keys = @[@"name", @"address"];

    // NSArray *objects = @[@"jack", @"北京"];

    

    // NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys];

    

    

    /*

     NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:

     @"jack", @"name",

     @"北京", @"address",

     @"32423434", @"qq", nil];*/

    

    

    NSDictionary *dict = @{@"name" : @"jack", @"address" : @"北京"};

    

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

    

    id obj = dict[@"name"];

    

    NSLog(@"%@", obj);

    

    

    

    // 返回的是键值对的个数

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

}

void use2()

{

    NSMutableDictionary *dict = [NSMutableDictionary dictionary];

    

    // 添加键值对

    [dict setObject:@"jack" forKey:@"name"];

    

    

    [dict setObject:@"北京" forKey:@"address"];

    

    [dict setObject:@"rose" forKey:@"name"];

    

    

    // 移除键值对

    // [dict removeObjectForKey:<#(id)#>];

    

    

    NSString *str = dict[@"name"];

    

    

    //NSLog(@"%@", str);

    

    NSLog(@"%@", dict);

    

    

    //NSLog(@"%@", @[@"jack", @"rose"]);

}

void use3()

{错误用法!

    NSMutableDictionary *dict = @{@"name" : @"jack"};

    

    

    [dict setObject:@"rose" forKey:@"name"];

}

void use4()

{

    // 字典不允许有相同的key,但允许有相同的value(Object)

    // 字典的无序的

    NSDictionary *dict = @{

    @"address" : @"北京",

    @"name" : @"jack",

    @"name2" : @"jack",

    @"name3" : @"jack",

    @"qq" : @"7657567765"};

    

    //    NSArray *keys = [dict allKeys];

    //

    //    for (int i = 0; i<dict.count; i++)

    //    {

    //        NSString *key = keys[i];

    //        NSString *object = dict[key];

    //

    //

    //        NSLog(@"%@ = %@", key, object);

    //    }

    

    

    [dict enumerateKeysAndObjectsUsingBlock:

     ^(id key, id obj, BOOL *stop) {

         NSLog(@"%@ - %@", key, obj);

         

         // *stop = YES;

     }];

}

    NSArray *persons =
@[

   
@{@"name" :
@"jack", @"qq" :
@"432423423", @"books":
@[@"5分钟突破iOS编程",
@"5分钟突破android编程"]},

   
@{@"name" :
@"rose", @"qq" :
@"767567"},

   
@{@"name" :
@"jim", @"qq" :
@"423423"},

   
@{@"name" :
@"jake", @"qq" :
@"123123213"}

    ];

    

    // 

   
// NSDictionary *jim = persons[2];

    

    

    // 

    NSString *bookName = persons[0][@"books"][1];

    NSLog(@"%@", bookName);

   
//NSArray *array = persons[0][@"books"];

    

   
//NSLog(@"%@", array);

    

   
// 先取出1位置对应的字典

   
// 再取出字典中qq这个key对应的数据

   
//NSLog(@"%@", persons[1][@"qq"]);

    

   
// NSLog(@"%@", jim);

    return
0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息