ios学习--NSDictionary

   NSDictionary就是字典,顾名思义,它可以像我们平时拿着的高阶字典根据索引就可以马上查找得到对应的英文单词一样,操作一样,速度飞快

在object-c也是一种散列表,但是它跟set不同的是,字典通过forkey这个索引来快速访问数据,而不用遍历。同样滴,它也是储存全部的Cocoa对象,其他的数据类型

都是需要转换等等。。。。

       字典其实是一个很有用的数据类型。比如后面的将使用plist文件,json数据等。很多数据都是通过字典的形式来储存的。好好应用字典,可以帮我们的程序提高很高的速率,特别在数据量比较大的情况下。如何像数组遍历的话,那是在是太悲剧了~~~

       直接post上可变字典NSDictionary的使用方法:



<p class="p1">@autoreleasepool</p><p class="p2">    {</p><p class="p3"><span class="s1">        </span>//NSString *str = [NSString ]</p><p class="p4"><span class="s1">        </span>NSMutableDictionary<span class="s1"> *dict = [</span>NSMutableDictionary<span class="s1"> </span><span class="s2">dictionary</span><span class="s1">];</span></p><p class="p2">        [dict <span class="s2">setObject</span>:<span class="s3">@"Mike"</span> <span class="s2">forKey</span>:<span class="s3">@"name"</span>];</p><p class="p3"><span class="s1">        [dict </span><span class="s2">setObject</span><span class="s1">:</span><span class="s3">@"Jack"</span><span class="s1"> </span><span class="s2">forKey</span><span class="s1">:</span><span class="s3">@"name"</span><span class="s1">];  </span>//<span class="s4">检测字典的成员的唯一性,</span>the only one!</p><p class="p5">        </p><p class="p2">        [dict <span class="s2">setObject</span>:<span class="s3">@"</span><span class="s5">北京</span><span class="s3">"</span> <span class="s2">forKey</span>:<span class="s3">@"address"</span>];</p><p class="p2">        <span class="s2">NSLog</span>(<span class="s3">@"%@"</span>, dict);</p><p class="p5">        </p><p class="p6"><span class="s6">        </span><span class="s7">//</span>根据<span class="s7">key</span>这个索引值从字典中删除对应的索引以及索引值</p><p class="p7"><span class="s1">        [dict </span>removeObjectForKey<span class="s1">:</span><span class="s3">@"name"</span><span class="s1">];</span></p><p class="p2">        [dict <span class="s2">setObject</span>:<span class="s3">@"chuck"</span> <span class="s2">forKey</span>:<span class="s3">@"friend"</span>];</p><p class="p5">        </p><p class="p6"><span class="s6">        </span><span class="s7">//</span>通过<span class="s7">key</span>这个索引直接从字典中访问对应的值</p><p class="p2">        <span class="s2">NSLog</span>(<span class="s3">@"%@"</span>,[dict <span class="s2">objectForKey</span>:<span class="s3">@"friend"</span>]);</p><p class="p3"><span class="s1">        </span>//<span class="s4">使用</span>for<span class="s4">循环遍历整个循环</span></p><p class="p2">        <span class="s8">/*</span></p><p class="p3">         for (id key in dict)</p><p class="p3">         {</p><p class="p3">         id obj = [dict objectForKey:key];</p><p class="p3">         NSLog(@"%@ == %@", key, obj);</p><p class="p3">         }*/</p><p class="p5">        </p><p class="p6"><span class="s6">         </span><span class="s7">//</span>使用迭代器的方式遍历整个字典</p><p class="p7"><span class="s1">         [dict </span>enumerateKeysAndObjectsUsingBlock<span class="s1">:</span></p><p class="p2">         ^(<span class="s9">id</span> key, <span class="s9">id</span> obj, <span class="s9">BOOL</span> *stop)</p><p class="p2">         {</p><p class="p2">         <span class="s2">NSLog</span>(<span class="s3">@"%@ == %@"</span>, key, obj);</p><p class="p2">         }];</p><p class="p2">    }</p><p class="p1"><span class="s1">    </span>return<span class="s1"> </span><span class="s10">0</span><span class="s1">;</span></p>


根据上面的代码,马上查看输出代码:

<p class="p1"><strong>2014-11-12 23:49:53.013 Foundation05-NSSet[3550:303] {</strong></p><p class="p1"><strong>    address = "\U5317\U4eac";</strong></p><p class="p1"><strong>    name = Jack;</strong></p><p class="p1"><strong>}</strong></p><p class="p1"><strong>2014-11-12 23:49:53.018 Foundation05-NSSet[3550:303] chuck</strong></p><p class="p1"><strong>2014-11-12 23:49:53.018 Foundation05-NSSet[3550:303] address == </strong><span class="s1"><strong>北京</strong></span></p><p class="p1"><strong>2014-11-12 23:49:53.019 Foundation05-NSSet[3550:303] friend == chuck</strong></p>

总结:

上面没有做出不可变长度的字典的使用方法,其实使用方法都是相近的。

1、从第一次的输出结果可以知道,成员在字典当中的储存具有唯一性的。后面对同一个key对应的值赋值会覆盖之前的,这个是毋容置疑的。

2、通过使用setObect  以及  removeObject的方法操作字典中的成员。同样地,其他的API直接查询.h文件即可。


回顾前面的学习,当字典结合数组一起来使用将会是一件非常好的东西。更多的是因为这些集合都可以可以储存不同类型的Cocoa对象,而不像

c/c++那样只能够储存单一类型的数据。这样为我们的实际使用提供非常大得功能。


---学习回顾博客编写,to be continue!!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值