Object-c------NSDictionary的简单介绍

main.m

//
//  main.m
//  NSDictionary
//
//  Created by zhaogang on 16/5/8.
//  Copyright ? 2016年 zhaogang. All rights reserved.
//
/*
 集合
 NSArray        ArrayList
 NSSet          HashSet
 NSDictionary   Map

 1. NSArray\NSMutableArray
 * 有序
 * 快速创建(不可变): @[]
 * 快速访问元素: 数组名[]

 2. NSSet\NSMutableSet
 *无序

 3. NSDictionary\NSMutableDictionary
 * 无序
 * 快速创建(不可变): @{key : value}
 * 快速访问: 字典名[key]

 */

#import <Foundation/Foundation.h>

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

    NSArray *person = @[
      @{@"address" : @"beijing" , @"name" : @"jack", @"age" : @"22"},
      @{@"address" : @"shanghai" , @"name" : @"rose", @"age" : @"21"},
      @{@"address" : @"nanjing" , @"name" : @"mike", @"age" : @"23"},
      @{@"address" : @"hongkong" , @"name" : @"hobe", @"age" : @"25"}

      ];

//    NSDictionary *jack = person[0];
//    NSLog(@"%@", jack);

    NSLog(@"%@", person[1][@"address"]);

    return 0;
}

void test3()
{
    //字典不允许有想用的key,但允许有相同的value(object)
    NSDictionary *dict = @{@"address" : @"beijing" , @"name" : @"jack", @"age" : @"22"};

    //    NSArray *keys = [dict allKeys];
    //    for(int i = 0; i < dict.count; i++)
    //    {
    //        //[keys objectAtIndex:i];
    //        NSString *key =  keys[i];
    //        NSString *object = dict[key];
    //
    //        NSLog(@"%@ - %@", key , object);
    //    }

    [dict enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
        NSLog(@"%@ - %@" , key , obj);

        //*stop = YES;
    }];

}

void test2()
{

    //错误
    //    NSMutableDictionary *dict = @{@"name" : @"jack"};
    //
    //    [dict setObject:@"rose" forKey:@"name"];
    NSMutableDictionary *dict = [NSMutableDictionary dictionary];

    //添加键值对,没有顺序
    [dict setObject:@"jack" forKey:@"name"];
    [dict setObject:@"beijing" forKey:@"address"];

    //这里会将上面的key的值覆盖
    [dict setObject:@"rose" forKey:@"name"];

    //移除键值对
    //[dict removeObjectForKey:<#(nonnull id)#>];

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

    NSLog(@"%@",str);

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

    NSLog(@"%@", dict);
}

void test()
{
    /*
     字典:

     key---->value
     索引---->文字内容

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

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

    //    NSArray *key = @[@"name", @"address"];
    //    NSArray *object = @[@"jack", @"beijing"];
    //
    //    NSDictionary *dict = [NSDictionary dictionaryWithObjects:object forKeys:key];

    //    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
    //                          @"jack",@"name",
    //                          @"beijing",@"address",
    //                          @"22",@"age",nil];

    NSDictionary *dict  = @{@"name" : @"jack" , @"address" : @"beijing" , @"age" : @"22"};

    id obj = [dict objectForKey:@"age"];
    NSLog(@"%@", obj);

    //返回键值队的个数
    NSLog(@"%ld" , dict.count);

}
时间: 2024-10-25 13:02:50

Object-c------NSDictionary的简单介绍的相关文章

iOS-iOS开发简单介绍

概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的知识是你日后开发IOS的基础,没有那些知识你开发IOS会很痛苦,现在很多开发人员做开发都是一知半解,程序质量确实令人担忧,所以还是希望大家能够熟练掌握前面的内容,开发过程中多思考,彻底理解程序运行的原理.机制.好了言归正传,不管怎么样正式进入IOS开发还是令人兴奋的,今天的内容虽然说是开发预览,其实

iOS开发UI篇—Modal简单介绍

iOS开发UI篇—Modal简单介绍 一.简单介绍 除了push之外,还有另外一种控制器的切换方式,那就是Modal 任何控制器都能通过Modal的形式展?出来 Modal的默认效果:新控制器从屏幕的最底部往上钻,直到盖住之前的控制器为? 二.代码说明 新建一个项目,在Application的代理中添加window和控制器. TXAppDelegate.m文件 1 #import "TXAppDelegate.h" 2 #import "TXOneViewController

Object-c集合的简单介绍

一.简单介绍 NSArray/NSMutableArray NSSet/NSMutableSet NSDictionary/NSMutableDictionary NSArray.NSSet.NSDictionary是不可变的,创建的时候初始化 NSMutableArray.NSMutableSet.NSMutableDictionary是可变的 二.使用介绍 NSArray是有序的数组 NSMutableArray *myArray=[[NSMutableArray alloc] init];

UITabBarController简单介绍

转自:http://www.cnblogs.com/wendingding/p/3775488.html 一.简单介绍 UITabBarController和UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例子就是QQ.微信等应?. 二.UITabBarController的使用 1.使用步骤: (1)初始化UITabBarController (2)设置UIWindow的rootViewContr

iOS开发UI篇—UITabBarController简单介绍

一.简单介绍 UITabBarController和UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例子就是QQ.微信等应?. 二.UITabBarController的使用 1.使用步骤: (1)初始化UITabBarController (2)设置UIWindow的rootViewController为UITabBarController (3)创建相应的子控制器(viewcontroller)

iOS开发——图形与动画篇OC篇&amp; POP简单介绍及使用

POP简单介绍及使用 前言 动画在APP开发过程中 大家多多少少都会接触到 而且随着ios7的扁平化风格启用之后 越来越多的APP开始尝试加入各种绚丽的动画交互效果以增加APP的用户体验(当然 还是以国外的APP居多) 有过相关开发经验的同学肯定知道在iOS中 动画相关的部分都是基于Core Animation 但是今天我们不讨论Core Animation 今天的主角是POP -来自于Facebook的动画引擎(其实我不喜欢把POP定义为动画引擎 我愿意称它为函数发生器) 介绍 官方地址 ht

iOS开发多线程篇 09 —NSOperation简单介绍

iOS开发多线程篇—NSOperation简单介绍 一.NSOperation简介 1.简单说明 NSOperation的作?:配合使用NSOperation和NSOperationQueue也能实现多线程编程 NSOperation和NSOperationQueue实现多线程的具体步骤: (1)先将需要执行的操作封装到一个NSOperation对象中 (2)然后将NSOperation对象添加到NSOperationQueue中 (3)系统会?动将NSOperationQueue中的NSOpe

iOS开发数据库篇—SQLite简单介绍

转自:http://www.cnblogs.com/wendingding/p/3868893.html 一.离线缓存 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等. 说明:离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式 (1)归档:NSCodeing.NSKeyedArchiver (2)偏好设置:NSUserDefaults (3)Plist存储:writeToFile 提示:上述三种方法都有一个致命的缺点,那就是都无法存储大批量的数据,有性能的问题.

iOS开发UI篇-UIWindow简单介绍

iOS开发UI篇—UIWindow简单介绍 一.简单介绍 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了 一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow.也就说,没有UIWindow,就看不见任何UI界面 补充:UIWindow是创建的第一个视图控件(创建的第一个

iOS开发网络篇—简单介绍ASI框架的使用

iOS开发网络篇—简单介绍ASI框架的使用 说明:本文主要介绍网络编程中常用框架ASI的简单使用. 一.ASI简单介绍 ASI:全称是ASIHTTPRequest,外号“HTTP终结者”,功能十分强大. ASI的实现基于底层的CFNetwork框架,因此运行效率很高.可惜作者早已停止更新,有一些潜在的BUG无人去解决 ASI的github地址 https://github.com/pokeb/asi-http-request ASI的使用参考 http://www.cnblogs.com/dot