TAG

RSS订阅

收藏本站

设为首页

当前位置:主页 > 移动开发 > IOS开发 >

Cocoa中的实现字典的集合NSDictionary

发布时间:2014-11-22 21:31 类别:IOS开发

字典就是关键字及其定义(描述)的集合。Cocoa中的实现字典的集合NSDictionary在给定的关键字(通常是一个NSString)下存储一个数值(可以是任何类型的对象)。然后你就可以用这个关键字来查找相应的数值。
不同于数组,字典(也被称为散列表或关联数组)使用的是键查询的优化存储方式。它可以立即找出要查询的数据,而不需要遍历整个数组进行查找。
可使用dictionaryWithObjectsAndKeys来创建字典
查询字典的值:objectForKey
NSMutableDictionary的dictionary方法可以创建一个可变字典,也可以使用dictionaryWithCapaticy:。
使用 setObject:forkey: 方法添加字典元素,如果关键字已存在,则用新植替换旧值。
类似的,NSMutableDictionary类允许随意添加或删除字典元素。
添加元素:setObject:forkey:
删除元素:removeObjectForKey:
Example:
 
 
 1 // 2  //  MyClass.h 3  //  FoundationKit4 4  // 5  //  Created by Elf Sundae on 10/22/10. 6 //  Copyright 2010 Control-Strength. All rights reserved. 7 // 8  9 #import <Cocoa/Cocoa.h>10 11 12 @interface MyClass : NSObject13 {14     NSString *firstName;15     NSString *lastName;16 }17 18 19 - (void) setFirstName:(NSString *)m_firstName;20 - (NSString *) firstName;21 22 - (void) setLastName: (NSString *) m_lastName;23 - (NSString *) lastName;24 25 26 @end
 
 
 
 
 1 // 2 //  MyClass.m 3 //  FoundationKit4 4 // 5 //  Created by Elf Sundae on 10/22/10. 6 //  Copyright 2010 Control-Strength. All rights reserved. 7 // 8  9 #import "MyClass.h"10 11 12 @implementation MyClass13 14 - (void) setFirstName:(NSString *)m_firstName{15    16     firstName = m_firstName;17 }18 - (NSString *) firstName{19  return firstName;20 }21 22 - (void) setLastName: (NSString *) m_lastName{23     lastName = m_lastName;24 }25 - (NSString *) lastName{26  return lastName;27 }28 29 30 - (NSString *) description31 {   32  if (firstName == nil || lastName == nil) {33  return @"No Name found.";34     } else {35  return [NSString stringWithFormat:@"%@ %@",36             firstName,lastName];37     }38    39 }40 41 @end
 
 
 
 
 1 /* 2  * 示例字典(NSDictionary,NSMutableDictionary)操作 3  * 4  * Elf Sundae  10/22/2010 5  */ 6  7 #import <Foundation/Foundation.h> 8 #import "MyClass.h" 9 10 int main (int argc, const char * argv[]) {11     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];12    13  // 创建字典:dictionaryWithObjectsAndKeys:14     MyClass *my1 = [MyClass new];15     MyClass *my2 = [MyClass new];16     MyClass *my3 = [MyClass new];17     MyClass *my4 = [MyClass new];18    19     NSDictionary *myClassDict;20     myClassDict = [NSDictionary dictionaryWithObjectsAndKeys:21               my1, @"my1",22               my2, @"my2",23               my3, @"my3",24               my4, @"my4", nil];25  // 获取值 objectForKey26     MyClass *sub = [myClassDict objectForKey: @"my3"];27  if (sub == nil) {28         exit(1);29     }30     [sub setFirstName:@"Elf"];31     [sub setLastName:@"Sundae"];32    33     NSLog(@"修改数据: %@",sub);34    35  // 遍历字典36     NSLog(@"***遍历字典myClassDict如下:");37  for (id key in myClassDict)38     {39         NSLog(@"key: %@ ,value: %@",key,[myClassDict objectForKey:key]);40     }41     NSLog(@"***遍历字典myClassDict结束。");42    43  // MARK: ***  添加新元素  ***   44  // NSDictionary无法添加或删除元素,可以使用NSMutableDictionary.45     NSMutableDictionary *myNewDict = [NSMutableDictionary dictionary];46  // 将原有字典添加到新字典的一对元素47  //[myNewDict setObject:myClassDic forKey:@"旧的不可变字典myClassDic"];48    49  // 遍历添加已有数据(原字典)50  for (id key in myClassDict)51     {52         [myNewDict setObject: [myClassDict objectForKey:key]53                   forKey:key];54     }55    56     NSString *newkey = @"newKey";57     NSString *newValue = @"This is a new Value.";58     [myNewDict setObject:newValue forKey:newkey];59    60  // 遍历myNewDict61     NSLog(@"***遍历字典myNewDict如下:");62  for (id key in myNewDict)63     {64         NSLog(@"key: %@ ,value: %@",key,[myNewDict objectForKey:key]);65     }66     NSLog(@"***遍历字典myNewDict结束。");67    68  // 删除元素69     [myNewDict removeObjectForKey: @"newKey"];70    71  // 遍历myNewDict72     NSLog(@"***遍历字典myNewDict如下:");73  for (id key in myNewDict)74     {75         NSLog(@"key: %@ ,value: %@",key,[myNewDict objectForKey:key]);76     }77     NSLog(@"***遍历字典myNewDict结束。");78    79     [pool drain];80  return 0;81 }
 
 
 
 
 
// 输出结果(省略日期 时间等信息)
修改数据: Elf Sundae
***遍历字典myClassDict如下:
key: my3 ,value: Elf Sundae
key: my4 ,value: No Name found.
key: my1 ,value: No Name found.
key: my2 ,value: No Name found.
***遍历字典myClassDict结束。
***遍历字典myNewDict如下:
key: newKey ,value: This is a new Value.
key: my3 ,value: Elf Sundae
key: my4 ,value: No Name found.
key: my1 ,value: No Name found.
key: my2 ,value: No Name found.
***遍历字典myNewDict结束。
***遍历字典myNewDict如下:
key: my3 ,value: Elf Sundae
key: my4 ,value: No Name found.
key: my1 ,value: No Name found.
key: my2 ,value: No Name found.
***遍历字典myNewDict结束。
 
猜你会喜欢....

Copyright © 2015 www.wahenzan.com 哇!很赞 版权所有 浙ICP备14030256号-1 Power by DedeCms

浙公网安备 33010602005986号

声明:本站所有文章除标明原创外,均来自网络转载,版权归原作者所有,如果有侵犯到您的权益,请联系本站删除 网站管理员:758763728

360网站安全检测平台