`
yangsongjing
  • 浏览: 249150 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

oc笔记5(字典)

阅读更多

 

 

NSDictionary 通过唯一的key找到唯一的值

// 初始化 NSDictionary 是不可变的

NSDictionary *dic = [NSDictionary dictionaryWithObject:@"v" forKey:@"k"];

 

// 最常用的初始化方式

NSDictionary *dic = [NSDictionary 

 

dictionaryWithObjectAndKeys:@"v",@"k",@"v",@"k",@"v",@"k",nil];

 

// 

NSArray *keys = [NSArray arrayWithObjects:@"k1",@"k2","k3",nil];

NSDictionary *dic = [NSDictionary dictionaryWithObjects:objects forKeys:keys];

 

[dic count] // 返回键值对数

isEqualTO... 比较键值对是否相同

objectForKey:@"k2" // 通过键取值 由于NSDictionary不可变所以只能取值不能改变值

//将字典写入到文件中

NSString *path = @"/Users/apple/Desktop/a.xml";

[dict writeToFile:path atomically:YES];

// 从文件中读取内容

dict = [NSDictionary dictionaryWithContentsOfFile:path];

 

[dict allKeys]; // 返回所有的key

// 根据多个key找到多个value

[dict objectsForKeys:[NSArray arrayWithObjects:@"k1",@"k2",nil] 

 

notFoundMarker:@"not-found"];

 

//遍历字典

for(id key in dict) {

  id value = [dict obj];

}

 

// 迭代遍历 key迭代器

NSEnumerator *enumer = [dict keyEnumerator];

id key = nil;

while(key = [enumer nextObject]){

 id value = [dict objectForKey:key];

NSLog(@"%@=%@",key,value);

}

 

// 对象迭代器

[dict objectEnumerator];

 

// block 遍历

[dict enumerateKeysAndObjectsUsingBlock:(id key,id obj,BOOL *stop){

NSLog(@"");

}]

 

// 一个对象为字典的key或者value时,会做一次retain操作,计数器加1

当字典被销毁时,里面的所有key和value都会做一次release操作

 

====================================================

// 可变字典

NSMutableDictionary *dict = [NSMutableDictionary dictionary];

Student *stu = ...

[dict setObject:stu forKey:@"k1"];

 

removeObjectForKey 删除所有键值对

removeObjectForKey:@"k1" 删除k1对应的元素

可以传数组删除多个key对应的元素  removeobjectForKeys

 

// 添加其他字典到当前字典

NSDictionary *other = [NSDictionary ictionaryWithObject:@"v2" forKey:@"k2"];

[dict addEntriesFromDictionary:other];

 

// 一个对象为字典的key或者value时,会做一次retain操作,计数器加1

当字典被销毁时,里面的所有key和value都会做一次release操作

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    iOS史上最全的OC笔记

    5. **协议与代理**:OC的协议是一种实现多继承的方式,常用于实现对象间的通信。代理模式是iOS开发中的常见设计模式,笔记会讲解如何定义和使用代理。 6. **块(Block)**:OC的块是内联函数的一种形式,可以作为...

    黑马ios oc 教程笔记【超实用好用】

    培训机构的一份笔记,感觉很好用的

    ios游戏开发之cocos2d-oc笔记

    本笔记将深入探讨cocos2d-oc的核心概念、关键特性和实际应用,帮助开发者从零开始掌握这一强大的游戏引擎。 一、cocos2d-oc简介 cocos2d-oc是基于Objective-C的Cocos2d引擎版本,它提供了丰富的图形绘制、动画制作...

    OC Extension DelectedDicNull(判断字典中key是否有值).zip

    标题提到的"OC Extension DelectedDicNull(判断字典中key是否有值)"是一个OC扩展方法,专门用于处理字典中可能存在的`nil`值。 在Objective-C中,`NSDictionary`是不可变的数据结构,它存储键值对,其中键必须是`...

    OC Extension SafeObject(防止数组字典取值越界).zip

    在这个“OC Extension SafeObject(防止数组字典取值越界).zip”压缩包中,我们有一个这样的工具类,它的目的是确保在尝试获取数组或字典元素时,如果越界则安全地返回`nil`,而不是引发运行时错误。 首先,我们来...

    OC字符串、数组、字典常用方法大全

    用表格的形式详细总结了OC语言中字符串、数组、字典的属性,创建、以及使用方法

    api接口快速转化为oc的字典

    本文将详细介绍如何将API接口的JSON数据快速转化为Objective-C(OC)中的字典,以便在iOS应用中使用。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个...

    OC学习笔记合集

    本笔记合集将深入探讨OC的基础概念、语法特性以及实际应用中的常见问题。 一、Objective-C基础 1. 对象和类:Objective-C是基于对象的,所有的数据都是以对象的形式存在。类是对对象的模板,定义了对象的行为和...

    OC md5加密算法实现

    在OC中实现MD5加密,通常会借助于`CommonCrypto`库,这是一个苹果提供的C语言库,包含多种加密算法,如MD5、SHA等。我们可以创建一个类别(Category)来扩展`NSString`,增加MD5加密的方法,使得对字符串进行MD5处理...

    OC跟H5基础交互代码.zip

    在iOS开发中,Objective-C(简称OC)与HTML5(简称H5)的交互是常见的需求,尤其是在混合式应用开发中。本资源“OC跟H5基础交互代码.zip”提供了OC与H5之间进行基本通信的示例代码,这对于理解和实践这种交互方式...

    oc中字典的主要内容

    在这个“oc中字典的主要内容”课程中,我们将深入探讨`NSDictionary`的关键概念、常用方法以及在实际开发中的应用。 首先,`NSDictionary`是`NSObject`的子类,它不允许存储基本数据类型(如int、float),只能存储...

    神舟笔记本-战神K650C-i7 4700MQ HD4600 黑苹果 OC 引导.zip

    5. **神舟战神K650C-i7笔记本**:神舟是一家中国品牌,以其高性价比的笔记本电脑著名。安装黑苹果时,需要注意神舟笔记本的硬件配置,尤其是那些macOS官方未直接支持的部件。 6. **配置文件**:OpenCore引导加载器...

    黑苹果4代U通杀OC引导,bigsur

    "黑苹果4代U通杀OC引导,bigsur"这个标题揭示了我们即将探讨的主题,是关于在第四代Intel处理器(如i7、i5、i3以及E3)上安装黑苹果(Hackintosh)系统,并使用OC(OpenCore)引导程序来实现对最新macOS大版本"bigsur...

    iOS 学习OC语言部分,代码和笔记,超详细

    本压缩包提供的学习资料涵盖了OC语言的基础到高级特性,结合代码实例和详细笔记,是iOS开发者深入理解OC语言的宝贵资源。 一、Objective-C基础 Objective-C是C语言的超集,它引入了面向对象的概念,如类、对象、...

    黑苹果OC引导bigsur4代U专用

    "黑苹果OC引导bigsur4代U专用"这一标题涉及到的是在个人计算机上安装苹果操作系统Mac OS X(这里指的是macOS Big Sur)的过程,尤其是针对第四代Intel Core处理器(如i3、i5、i7以及E3 1220V3、1230V3、1271V3)的...

    Objective-C学习笔记(一)OC基础.md

    5. 类与对象的概念,如何定义一个类,如何创建对象并访问对象的属性。 6. 方法的声明、实现和调用,详细讲解了无参数、单参数和多参数方法的语法。 7. 两个实例,通过"书类"和"手机类"两个具体例子,综合运用前面所学的...

    OC调用JS以及JS调用OC的demo调用JS以及JS调用OC的demo

    5. 在JS中,通过`window.webkit.messageHandlers`对象调用OC注册的方法。 例如,假设你在OC中注册了一个名为`callFromJS`的JS消息处理器: ```objc WKUserContentController *userContentController = [...

    黑苹果 big sur戴尔5370 8250u UHD620 OC引导EFI.zip

    标题中的“黑苹果 big sur戴尔5370 8250u UHD620 OC引导EFI.zip”指的是在戴尔XPS 5370笔记本上安装苹果操作系统Big Sur,并通过超频(Overclocking,简称OC)进行引导的EFI(Extensible Firmware Interface)配置...

Global site tag (gtag.js) - Google Analytics