NSDictionary类似Java中的Map,内部存储key-value对,key的类型是NSString,value可以是任意对象类型指针。键值和数据必须不为nil,如果想表示一个空的值,则用NSNull。字典本身是不可以更改的。NSMutableDictionary 是可更改的字典。
下面例子是网上流传的,写的很细
NSArray *array1 = [NSArray arrayWithObjects:@"iphone",@"ipod",nil];
NSArray *array2 = [NSArray arrayWithObjects:@"mac",@"imac",@"mac pro",nil];
////1、创建字典 ,类方法初始化自动释放
NSDictionary *myDictionary = [NSDictionarydictionaryWithObjectsAndKeys:array1,@"mobile",array2,@"computers",nil];//注意用nil结束
NSLog(@”myDictionary = %@”,myDictionary);
//得到key-value的个数
int dictSize = [myDictionary count];
//根据key找到字典中的值
NSArray *mobile = [myDictionary objectForKey:@"mobile"];
//得到所有key
NSArray *keys = [myDictionary allKeysForObject:array1];
//得到所有value
NSArray *values = [myDictionary allValues];
//快速枚举
for(id key in myDictionary)
{
NSLog(@”key: %@,value: %@”,key,[myDictionary objectForKey:key]);
}
//如果字典只包含属性列表对象(NSData,NSDate,NSNumber,NSString,NSArray或NSDictionary)可以保存到文件中
NSString *filePath = [[[NSBundlemainBundle]resourcePath]stringByAppendingPathComponent:@”dict.txt”];
BOOL success = [myDictionary writeToFile:filePath atomically:YES];
//用文件填充
NSDictionary *myDict2 =[NSDictionary dictionaryWithContentsOfFile:filePath];
//可变字典
NSMutableDictionary *dictMutable = [[NSMutableDictionaryalloc]initWithObjectsAndKeys:array1,@”mobile”,array2,@”computer”, nil];
NSString *string4 = @”stringTV”;
//修改对象
[dictMutable setObject:string4 forKey:@"media"];
//删除对象
[dictMutable removeObjectForKey:@"mobile"];
//删除多个对象
NSArray *keyArray =[NSArray arrayWithObjects:@"mobile",@"computer", nil];
[dictMutable removeObjectForKey:keyArray];
//删除所有对象
[dictMutable removeAllObjects];
分享到:
相关推荐
在"IOS-Object_C经典学习PPT要点"中,我们可能会涵盖以下关键概念: 1. **类与对象**:Objective-C中的所有事物都是对象,而类是创建对象的蓝图。类定义了对象的属性(实例变量)和行为(方法)。 2. **消息传递**...
在iOS开发中,Objective-C是主要的编程语言之一,特别是在构建移动端应用时。Objective-C的实体类对象序列化和反序列化是数据处理的关键环节,它涉及到如何将内存中的对象转换为可存储或传输的数据格式,如JSON...
在iOS开发中,数据交换和存储常常涉及到JSON(JavaScript Object Notation)格式,因为它轻量、易读且被广泛支持。本示例是关于如何将一个`NSDictionary`对象转换为`JSONString`的iOS演示。`NSDictionary`是...
NSDictionary *parameters = @{@"key": @"value"}; [[AFHTTPSessionManager manager] POST:@"http://example.com/resources.json" parameters:parameters success:^(NSURLSessionDataTask * _Nonnull task, id _...
在iOS开发中,页面间的传值是日常开发中不可或缺的一部分,尤其对于Objective-C(简称OC)的开发者来说,掌握各种传值方式能显著提高代码的灵活性和可维护性。本资料"ios-iOS-OC-页面传值的5种方法.zip"主要探讨了五...
在iOS开发中,数据模型(Model)是用来存储和管理应用程序数据的重要组成部分。通常,我们会从服务器获取JSON或XML格式的数据,然后需要将其转化为 Objective-C 或 Swift 中的对象模型以便于操作和展示。本教程将...
"iOS对象转字典 object2Dictionary"这个话题聚焦于如何将Objective-C或Swift中的对象转换成字典(NSDictionary或Swift的Dictionary类型),进而可能进一步转化为JSON格式。这种转换在序列化和反序列化过程中扮演着...
在iOS开发中,当需要将数据发送到服务器或者存储本地时,通常会将Objective-C的对象如NSDictionary转换成JSON格式的字符串。这是因为JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和...
NSDictionary *immutableDictionary = @{@"Key": @"Value"}; ``` 通过以上介绍,我们可以看到Objective-C作为一种面向对象的编程语言,在iOS和Mac OS X开发中扮演着非常重要的角色。掌握了Objective-C的基础知识...
在iOS和macOS开发中,我们经常使用Foundation框架中的`NSDictionary`来存储键值对数据。`NSDictionary`要求键必须是不可变的、遵循`NSCopying`协议的对象,通常是`NSString`实例。然而,有时我们需要将自定义类作为...
在iOS开发中,将JSON数据转换为Objective-C或Swift的对象是一项常见的任务,特别是在与服务器进行数据交换时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读性和易于处理而广泛使用。本...
Object-C的设计旨在提高代码的可读性和可维护性,同时保持C语言的效率和灵活性。Object-C主要应用于Apple的macOS和iOS操作系统上,是开发这些平台应用程序的主要语言之一。 **基本语法特点:** 1. **类定义**:在...
**iOS中的Key-Value Observing (KVO)技术详解** Key-Value Observing(KVO)是Objective-C中的一种机制,允许对象监听并响应其他对象属性的变化。在iOS开发中,KVO是一种强大的数据绑定工具,它使得我们可以方便地...
在iOS开发中,数组越界和字典value为nil是两个常见的编程错误,它们可能导致程序崩溃,严重影响用户体验。为了防止这种情况,开发者需要采取相应的措施。这个压缩包提供了一个名为"NSObject+runtime"的分类,旨在...
本示例“ios demo, JSONString to NSDictionary”聚焦于将JSON字符串转化为Objective-C中的NSDictionary对象,这是iOS开发中的常见操作。接下来,我们将深入探讨这个过程以及相关知识点。 首先,理解JSON的基本结构...
本篇文章将详细探讨如何在Objective-C或Swift中实现NSDictionary、JSON和XML之间的转换。 首先,我们来看`NSDictionary`。它是Foundation框架中的一个核心类,用于存储键值对,非常适合表示复杂的数据结构。...
NSDictionary *parameters = @{@"key": @"value"}; [[AFHTTPSessionManager manager] POST:@"http://example.com/resources.json" parameters:parameters success:^(NSURLSessionDataTask * _Nonnull task, id _...
Objective-C的Runtime允许在运行时检查和修改类的结构,这对于实现一些高级功能,如KVO(Key-Value Observing)和Category的动态添加方法等,至关重要。 对于iOS和macOS开发,Objective-C是基础,而Foundation框架...