Foundation框架学习之NSDictionary和NSMutableDictionary

Objective-C字典操作指南

数组的存储是连续的,而字典则是不一定连续的,NSDictionary是不能进行增、删、改的;字典是以键值对的形式存在,这里学习下字典的应用

//
//  NSDictionaryDemo.m
//  OCDemo1
//
//  Created by dcr on 2016/12/8.
//  Copyright © 2016年. All rights reserved.
//

#import "NSDictionaryDemo.h"

@implementation NSDictionaryDemo

- (void)printNSDictionary{
    NSDictionary *dic = [NSDictionary dictionaryWithObject:@"1" forKey:@"a"];
    NSLog(@"dic = %@", dic);
    //常见的创建方式
    NSDictionary *dic2 = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"1", @"2", @"3", @"4", nil] forKeys:[NSArray arrayWithObjects:@"a", @"b", @"c", @"d", nil]];
    NSLog(@"dic2 = %@", dic2);
    NSDictionary *dic3 = @{@"a":@"1", @"b":@"2", @"c":@"3"};
    NSLog(@"dic3 = %@", dic3);
    
    NSLog(@"dic3 count = %d", (int)[dic3 count]);
    NSLog(@"dic3 valueForKey = %@", [dic3 valueForKey:@"b"]);
    NSLog(@"dic3 objectForKey = %@", [dic3 objectForKey:@"b"]);
    NSArray *allValues = [dic3 allValues];
    for(NSString *str in allValues){
        NSLog(@"str = %@", str);
    }
    NSLog(@"dic3 allKeys = %@", [dic3 allKeys]);
    NSArray *str1 = [dic3 objectsForKeys:[NSArray arrayWithObjects:@"a", @"b", @"g", nil] notFoundMarker:@"none"];
    NSLog(@"str1 = %@", str1);
    
    //遍历字典
    for(NSString *key in dic3){
        NSLog(@"key = %@, value = %@", key, [dic3 objectForKey:key]);
    }
    //枚举器
    NSEnumerator *en = [dic3 keyEnumerator];
    id key = nil;
    while (key = [en nextObject]) {
        NSLog(@"key = %@, value = %@", key, [dic3 objectForKey:key]);
    }
}

- (void)printNSMutableNSDictionary{
    NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
    //添加
    [dic setObject:@"value" forKey:@"key"];
    [dic setObject:@"2" forKey:@"a"];
    [dic setObject:@"3" forKey:@"b"];
    //删除
    //[dic removeAllObjects];
    //[dic removeObjectForKey:@"a"];
    [dic removeObjectsForKeys:[NSArray arrayWithObjects:@"a", @"b", nil]];
    NSLog(@"dic = %@", dic);
}

@end



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值