`
rayln
  • 浏览: 434378 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

NSDictionary

阅读更多
字典相当于Java中的Map, 有key和value

//
//  main.m
//  NSDictionary
//
//  Created by rayln on 13-9-6.
//  Copyright (c) 2013年 rayln. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        NSDictionary *dic = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"a",@"b",@"c",@"d", nil] forKeys:[NSArray arrayWithObjects:@"k1",@"k2",@"k3",@"k4", nil]];
        NSDictionary *dic2 = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"a",@"b",@"c",@"d", nil] forKeys:[NSArray arrayWithObjects:@"k1",@"k2",@"k3",@"k4", nil]];
        //包含的元素个数
        [dic count]; //返回4
        //比较2个字典是否相等
        [dic isEqualToDictionary:dic2];
        //根据key取出value	
        [dic objectForKey:@"k1"]; //输出a
        //字典写入文件中
        [dic writeToFile:@"/Users/rayln/Desktop/text.txt" atomically:YES];
        //从字典读取数据
        [NSDictionary dictionaryWithContentsOfFile:@"/Users/rayln/Desktop/text.txt"];
        //返回所有的key
        [dic allKeys];
        //返回所有的value
        [dic allValues];
        
#pragma mark - 用法
        //另一种声称dictionary方法
        NSDictionary *dic3 = [NSDictionary dictionaryWithObjectsAndKeys:
                              @"v6", @"k6",
                              @"v1", @"k1",
                              @"v1", @"k2",
                              @"v1", @"k3",
                              @"v4", @"k4", nil];
        //返回包含value的所有key
        [dic3 allKeysForObject:@"v1"]; //输出[k1, k2, k3]
        //对应多个key找到多个value, notFoundMarker参数是表示如果找不到对应的key,则value值由notFoundMarker替代
        [dic3 objectsForKeys:[NSArray arrayWithObjects:@"k1", @"k2", @"k5", nil] notFoundMarker:@"notfound"]; //输出[v1, v1, notfound]
        
#pragma mark - 字典遍历
        //遍历所有key
        for (id key in dic3) {
            NSLog(@"%@", key);
            
        }
        
        //key的迭代器
        NSEnumerator *enumKey = [dic3 keyEnumerator];
        id key = nil;
        while (key = [enumKey nextObject]) {
            NSLog(@"key=%@", key);
        }
        
        //对象迭代器 不演示了!
        [dic3 objectEnumerator];
        
        //block遍历- stop表示是否停止循环 如果stop=YES, 则停止循环
        [dic3 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
            NSLog(@"block-%@=%@",key,obj);
        }];
        
#pragma mark - 字典排序
        //根据value进行排序,返回排好序的key的Array
        NSArray *arr = [dic3 keysSortedByValueUsingSelector:@selector(compare:)]; //返回[k3, k2, k1, k4, k6]
        //block排序,也是根据value进行排序,返回排好序的key的Array
        arr = [dic3  keysSortedByValueUsingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2) {
            NSComparisonResult *result = [obj1 compare:obj2];
            return result;
        }];//返回[k3, k2, k1, k4, k6]
        
        NSLog(@"%@", arr);
        
#pragma mark - 内存管理
        //当字典有对象时,字典中每个对象都会做一次retain操作,当字典释放时就会做一次release操作
        
    }
    return 0;
}

	
分享到:
评论

相关推荐

    NSData与NSDictionary、JSON数据类型相互转换

    在本文中,我们将探讨如何使用NSData与其他类型,特别是NSDictionary和JSON数据进行转换。 首先,NSData允许开发者将各种数据类型(如结构体、图像等)转换为二进制格式,以便于存储或在网络上传输。例如,在提供的...

    ios demo,NSData和NSDictionary之间的相互转换的实现案例

    在iOS开发中,NSData和NSDictionary是两种非常基础且重要的数据类型。NSData用于存储二进制数据,而NSDictionary则用于存储键值对的数据结构。在实际应用中,我们常常需要将这两种类型进行相互转换,以便于数据的...

    NSDictionary,JSON和XML互相转换

    常见的数据交换格式有三种:NSDictionary(苹果特有的键值对数据结构)、JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)。这三种格式各有特点,应用场景不同,但有时我们需要将它们之间...

    swift-Objective-C&Swift库可以轻松将NSDictionary映射到模型对象与Alamofire完美配合

    `swift-Objective-C&Swift库可以轻松将NSDictionary映射到模型对象与Alamofire完美配合`这一标题揭示了一个高效的解决方案,它结合了Objective-C和Swift语言的优势,使得从JSON数据到自定义模型对象的转换变得简单...

    NSDictionary-NilSafe, 发光时我们如何让NSDictionary安全.zip

    NSDictionary-NilSafe, 发光时我们如何让NSDictionary安全 nsdictionary-nilsafe在发光的时候我们如何使NSDictionary安全,更多的在发光科技博客上阅读。 示例要运行示例项目,克隆 repo,然后从示例目录中运行 pod ...

    NSDictionary_NSMutableDictionary

    1.字典使用Key-Value的形式储存数据,是关键字... Cocoa中的实现字典的集合NSDictionary在给定的关键字(通常是一个NSString)下存储一个数值(可以是任何类型的对象)。然后你就可以用这个关键字来查找相应的数值。

    M13OrderedDictionary, 带有有序对象和键的NSDictionary.zip

    M13OrderedDictionary, 带有有序对象和键的NSDictionary M13OrderedDictionaryM13OrderedDictionary是NSArray和NSDictionary之间的交叉。 它包含一个有序的对象和键列表。 所有这些都可以通过索引或者键访问。 这里...

    NSArray,NSSet,NSEnumerator,NSDictionary及对应Mutable介绍

    这些类包括NSArray、NSSet、NSEnumerator和NSDictionary,以及它们的可变版本NSMutableArray、NSMutableSet和NSMutableDictionary。这些类提供了各种操作来处理对象的集合,如添加、删除、查找等。以下是关于这些类...

    ios demo,NSDictionary toJSONString,字典转换到JSONString

    本示例是关于如何将一个`NSDictionary`对象转换为`JSONString`的iOS演示。`NSDictionary`是Objective-C中的一个核心数据结构,用于存储键值对,而`JSONString`则是将这些数据序列化成JSON格式的字符串,方便在网络上...

    oc.zip_NSArray_NSDictionary_去空

    在iOS开发中,`NSArray` 和 `NSDictionary` 是两种非常重要的数据结构,分别用于存储有序的元素集合(数组)和键值对集合(字典)。然而,在处理实际数据时,我们常常会遇到空值(nil 或 NSNull)的情况,这可能导致...

    自定义类在NSdictionary当key的示例

    在iOS和macOS开发中,我们经常使用Foundation框架中的`NSDictionary`来存储键值对数据。`NSDictionary`要求键必须是不可变的、遵循`NSCopying`协议的对象,通常是`NSString`实例。然而,有时我们需要将自定义类作为...

    (objective-c 自定义 NSDictionary 键类的注意事项)工程

    在Objective-C中,`NSDictionary`是用于存储键值对的核心数据结构。自定义键类时,需要遵循一些关键点以确保正确性和效率。本篇文章将深入探讨这些注意事项,旨在帮助开发者更好地理解和使用自定义键来操作`...

    ios demo,JSONString to NSDictionary,字符串JSON数据转换到字典数据

    本示例“ios demo, JSONString to NSDictionary”聚焦于将JSON字符串转化为Objective-C中的NSDictionary对象,这是iOS开发中的常见操作。接下来,我们将深入探讨这个过程以及相关知识点。 首先,理解JSON的基本结构...

    NSArray,NSSet,NSDictionary超详细用法说明

    在iOS和Objective-C(OC)开发中,NSArray、NSSet和NSDictionary是Foundation框架中的核心数据结构,它们用于存储和管理对象。这些容器类提供了多种方法来操作和访问存储的数据,是编写应用程序时不可或缺的部分。 ...

    一些NSArray,NSDictionary,NSSet相关的算法知识1

    在iOS编程中,NSArray、NSDictionary和NSSet是常用的集合类,它们提供了存储和操作对象的方式。这些集合类在实际开发中扮演着重要角色,理解和优化它们的使用能够显著提高代码的性能和准确性。以下是对这些集合类...

    NSDictionary帮助文档

    ### 详尽解析:NSDictionary在Objective-C中的应用与特性 #### 核心概念与功能 `NSDictionary`是Cocoa框架中一个重要的类,用于管理键值对数据集合。它提供了强大的功能来存储、检索和操作数据,是Objective-C中...

    NSString NSArray NSDictionary 方法名释义

    NSString NSArray NSDictionary 方法名释义

    NSDictionary.zip

    在iOS开发中,NSDictionary是Objective-C中的一个核心数据结构,它是Foundation框架的一部分,用于存储键值对(key-value pairs)的数据集合。这个压缩包“NSDictionary.zip”可能包含了一个示例项目或者教学资源,...

    iphone 开发学习基础NSDictionary

    object-c基础语法NSDictionary, 适合初学者,主要学习字典的操作,包括字典创建、长度、通过KEY找到value、获取所有key、获取所有value、以及可变字典的定义、可变字典添加值、可变字典的删除等

Global site tag (gtag.js) - Google Analytics