字典的使用
创建字典
NSDictionary
类通过初始化程序和类工厂方法,向您提供多种创建字典的方法,但是有两个类方法特别常用:dictionaryWithObjects:forKeys:
和 dictionaryWithObjectsAndKeys:
(或它们对应的初始化程序)。使用前一种方法时,您传入对象数组和键数组;键在位置上与其值匹配。使用第二种方法时,您指定第一个对象值及其键,第二个对象值及其键,依此类推;您使用 nil
标记此对象序列的结尾。
// First create an array of keys and a complementary array of values |
NSArray *keyArray = [NSArray arrayWithObjects:@"IssueDate", @"IssueName", @"IssueIcon", nil]; |
NSArray *valueArray = [NSArray arrayWithObjects:[NSDate date], @"Numerology Today", |
self.currentIssueIcon, nil]; |
// Create a dictionary, passing in the key array and value array |
NSDictionary *dictionaryOne = [NSDictionary dictionaryWithObjects:valueArray forKeys:keyArray]; |
// Create a dictionary by alternating value and key and terminating with nil |
NSDictionary *dictionaryTwo = [[NSDictionary alloc] initWithObjectsAndKeys:[NSDate date], |
@"IssueDate", @"Numerology Today", @"IssueName", self.currentIssueIcon, @"IssueIcon", nil]; |
如同数组,创建 NSDictionary
对象时,您可使用容器字面常量 @{
key :
value,
…},其中“…”表示任意数量的键-值对。例如,以下代码创建含三个键-值对的不可变字典对象:
NSDictionary *myDictionary = @{ |
@"name" :NSUserName(), |
@"date" :[NSDate date], |
@"processInfo" :[NSProcessInfo processInfo] |
}; |
访问字典中的对象
您通过调用 objectForKey:
方法并将键指定为参数,访问字典中的对象值。
NSDate *date = [dictionaryTwo objectForKey:@"IssueDate"]; |
您还可以使用下标访问字典中的对象。键出现在方括号内(方括号紧接在字典变量后面)。
NSString *theName = myDictionary[@"name"]; |
管理可变字典
您通过调用 setObject:forKey:
和 removeObjectForKey:
方法,在可变字典中插入和删除项目。setObject:forKey:
方法替换给定键的任何现有值。这些方法都很快捷。
您还可以使用下标,将键-值对添加到可变字典中。键下标位于赋值左侧,而值位于右侧。
NSMutableDictionary *mutableDict = [[NSMutableDictionary alloc] init]; |
mutableDict[@"name"] = @"John Doe"; |