Objective-C入门09:不可变字典
#import <Foundation/Foundation.h>
int main(int argc,constchar * argv[]) {
@autoreleasepool {
#pragma mark----------------字典-------------------
// 字典(NSDictionary,NSMwtableDictionary)是由键---值组成的数据集合
// 通过key(键)查找对应 value(值),key是字符对象,可以是任何其他类型对象。在一个字典对象中,
// key必须是唯一的,
// 字典对象的键和值不能为空,如果需要在一个字典对像中表示一个空值,可以使用 NSNull对象
// 为什么要使用字典? 为什么不使用数组?
// 数组的特征 :它是按一定顺序去排列的集合,通过下标去取值(当希望数据按照一定的顺序取排列的时候,选择使用数组)
// 字典的特征:通过key存取值(获取一个具体的标示准确的得到咱们想要的值)
#pragma mark----------------字典的初始化-------------------
// 字典是通过key来存取值的
// key value 是成对出现的
// 不可变字典的类名 NSDictionary
// 初始化一个空字典
// NSDictionary *dic = [ [ NSDictionary alloc ] init ] ;
// 初始化一个空字典
// NSDictionary *dic1 = [ NSDictionary dictionary ] ;
// 初始化一个字典的同时添加一对键值
// NSDictionary *dic2 = [ NSDictionary dictionaryWithObject : @"value" forKey:@"key" ] ;
// 通过key可以取到 value的值
// 初始化一个字典的同时添加多对键值
// NSDictionary *dic3= [ NSDictionary dictionaryWithObjectsAndKeys : @"object" , @"key", @"object1" , @"key1" , nil ] ;
// 前面是值 可以是任何类型 后面是key 必须是字符串
// 字典的新写法
// 前面是 key 后面是值
// NSDictionary *dic4 = @{ @"key" : @"值" , @"key1" : @"值1" } ;
#pragma mark----------------字典的取值-------------------
NSDictionary *dic5 = @{@"key" : @"值" ,@"key1" : @"值1" } ;
// 方法一
// objectForKey : 通过key取字典里面的值
NSString *string = [dic5objectForKey:@"key"] ;
NSLog(@"key的值是:%@" , string );
// 方法二 字典名 [@“key”]
NSString *string1= dic5[@"key1" ] ;
NSLog(@"key1的值是:%@" , string1 );
#pragma mark----------------字典的练习-------------------
// 1.用字典表达出自己考试的分数
// 语文 25分 数学 1000分 英语 3分
NSDictionary *chengji = [NSDictionarydictionaryWithObjectsAndKeys :@"25分" ,@"语文",@"1000分" ,@"数学" ,@"3分" ,@"英语" , nil ] ;
NSString *socre = [chengjiobjectForKey :@"语文"] ;
NSString *socre1 = [chengjiobjectForKey :@"数学"] ;
NSString *socre2 = [chengjiobjectForKey :@"英语"] ;
NSLog(@"\n语文成绩是:%@\n数学成绩是:%@\n英语成绩是:%@" , socre , socre1 , socre2 ) ;
// 方法二 用stringWithFormat拼接
// 2.用字典表达出一年四季的特征分别取出每个季节的特征
NSDictionary *jijie = [NSDictionarydictionaryWithObjectsAndKeys :@"发芽" ,@"春季",@"开花" ,@"夏季" ,@"结果" ,@"秋季" ,@"凋谢" ,@"冬季" , nil ] ;
NSString *tezheng = [ jijieobjectForKey :@"春季" ] ;
NSString *tezheng1 = [ jijieobjectForKey :@"夏季" ] ;
NSString *tezheng2 = [ jijieobjectForKey :@"秋季" ] ;
NSString *tezheng3 = [ jijieobjectForKey :@"冬季" ] ;
NSLog(@"\n春季的特征是:%@\n夏季的特征是:%@\n秋季的特征是:%@\n冬季的特征是:%@" , tezheng , tezheng1 , tezheng2 , tezheng3 ) ;
// 遍历字典
// allkeys : 是所有 key的一个数组
// count 得到数组内有多少个元素
// jijie.allKeys
for ( int i =0 ; i < jijie.allKeys.count ; i++ )
{
NSString * key = jijie.allKeys;
NSLog(@"%@ " , jijie.allKeys) ;
}
}
return 0;
}