首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS中第三方有序字典框架——M13OrderedDictionary

>))keyAtIndex:(NSUInteger)index; //通过某个下标获取字段中的元素 返回的为单键值对NSDictionary对象 - (NSDictionary M13Generics(...)objectForKey:(M13GenericType(KeyType, id))key; //获取某些键对应的值 如果没有找到 则可以设置默认返回的值 即参数anObject...; //获取某个值的下标 找不到会返回NSNotFound - (NSUInteger)indexOfObject:(M13GenericType(ObjectType, id))object; //获取某个键的下标...usingBlock:(void (^)(M13GenericType(ObjectType, id) obj, NSUInteger idx, BOOL *stop))block; //获取与另一个数组中第一个相同的元素的值...ObjectType, id))firstObjectInCommonWithOrderedDictionary:(M13OrderedDictionary *)otherOrderedDictionary; //获取与另一个数组中第一个相同的元素的键

2.6K20

iOS面试题:NSCache,NSDictionary,NSArray的区别

NSDictionary中的键是被拷贝的并且需要是恒定的。如果在一个键在被用于在字典中放入一个值后被改变,那么这个值可能就会变得无法获取了。...一个有趣的细节,在NSDictionary中键是被拷贝的,而在使用一个toll-free桥接的CFDictionary时却只被retain。...它自动对内存警告做出反应并基于可设置的成本清理自己。与NSDictionary相比,键是被retain而不是被拷贝的。 NSCache的回收方法是不确定的,在文档中也没有说明。...如果采用普通的字典,那么就要自己编写挂钩,在系统通知时手动删减缓存,NSCache会先行删减 时间最久为被使用的对象 NSCache 并不会拷贝键,而是会保留它。...因此NSCache对象不会自动拷贝键,所以在键不支持拷贝操作的情况下,该类比字典用起来更方便 NScache是线程安全的,NSDictionary不是。

1.4K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    OC知识--Foundation框架详尽总结之『字典类』

    本文对Foundation框架中的字典类(NSDictionary和NSMutableDictionary)的使用做一个详细的总结。...NSDictionary 1.NSDictionar介绍 Dictionary翻译过来叫做"字典" 日常生活中,“字典”的作用:通过一个拼音或者汉字,就能找到对应的详细解释 NSDictionary的作用类似...:通过一个键(key),就能找到对应的值(value) NSDictionary中的键(key)是单值,通常是字符串,也可以是其他对象类型 NSDictionary中和键(key)关联的值(value)...键值对集合的特点 字典存储的时候,必须是"键值对"的方式来存储(同时键不要重复) 键值对中存储的数据是"无序的" 键值对集合可以根据键,快速获取数据 5....NSMutableDictionary的常见操作 添加/修改一个键值对(如果aKey之前有值,则会把aKey之前对应的值给替换掉)- (void)setObject:(id)anObject forKey

    73350

    YYModel V1.0.4源码解析

    以前我在写runtime 小结的时候,就说过所有解析json 或者自动实现其他数据转换为model的,最终都是利用runtime 来动态获取model的属性、示例变量等。...YYEncodingNSType _nsType; /** 以下bool值,是根据我们是否在model 类中实现了对应的自定义转换方法来判断的, 比如如果我们实现了`- (BOOL...它是受黑名单、白名单、setter 和getter 影响的。 假如有一个Model,有20个属性,其中有5个是不需要转换的,已经添加在黑名单方法中。...cls) return nil; // 1、声明一个字典,用来存Model 类和类的信息,键是Model 名。...NSDictionary *allPropertyMetas = [cls getAllPropertyMetas]; // 6.如果有属性名和json中的键不一样的,为属性设置json

    69140

    Colours–颜色库,包含100种预定义的颜色和方法

    最新示例: 点击下载 快速入门 安装 通过Cocoapods安装 pod 'Colours' 手动安装 把 Colours.h 和 Colours.m拖进你的工程里,在需要的地方引入头文件即可: #import...]; UIColor *newColor = [UIColor colorFromRGBADictionary:colorDict]; // 你可以获取某个单独的值: NSNumber *r = colorDict...NSDictionary *colorDict = [[UIColor seafoamColor] hsbaDictionary]; HSBA与颜色的相互转换 与RGBA与颜色的相互转换类似,预定义的键是...colorComponents 方法会返回一个字典,包含RGBA, HSBA, CIE_LAB和CMYK预定义的所有键: NSDictionary *components = [someColor colorComponents...UIColor *contrastingColor = [[UIColor seafoamColor] blackOrWhiteContrastingColor]; 获取互补色 // 返回一个给定颜色的互补色

    1.6K80

    将判断 NSArray 数组是否包含指定元素的时间复杂度从 O(n) 降为 O(1)

    前言 NSArray 获取指定 元素 的位置 或者 判断是否存在指定的 元素 的时间复杂度是 O(n)(包含特定元素时,平均耗时是 O(n/2),如果不包含特定元素,耗时是 O(n))。...image 本文会介绍一个特别的方案,通过将数组转为字典,我们可以将时间复杂度降低到 O(1) 级别。...php 中的数组 首先,我们先对 php 的数组进行一些了解 在 php 中,数组提供了一种特殊的用法:关联键的数组。...所以,普通数组可以转为 关联键的数组 的写法 ?...: 字典的 键 是数组存储的 元素 该设计方式可以保证后续通过 objectForKey: 判断是否存在指定的 元素 字典的 值 是 数组的 索引值 该规则保证字典可以恢复为数组 // 将数组转为字典

    1.8K20

    iOS开发CoreGraphics核心图形框架之二——深入理解图形上下文

    三、在UIKit框架中操作图形上下文     在UIKit框架中有一个UIGraphics头文件,其中封装了许多对当前图形上下文进行操作的方法。...PDF图形上下文时,可以设置一个信息字典,这个字典中常用的可以进行配置的键值如下: //这个键是可选的 对应需要设置为字符串类型的值 表明文档作者 kCGPDFContextAuthor //这个键是可选的...对应需要设置为字符串类型的值 表示生成文档的命名名称 kCGPDFContextCreator //这个键是可选的 对应需要设置为字符串类型的值 表示文档名称 kCGPDFContextTitle /.../这个键设置所有者密码 需要设置为CFString的值 kCGPDFContextOwnerPassword //这个键设置用户密码 需要设置为CFString的值 kCGPDFContextUserPassword...//这个键设置是否允许在未解锁状态下进行打印 需要设置为CFBollean的值 默认为允许 kCGPDFContextAllowsPrinting //这个键设置是否允许在未解锁状态下进行复制 需要设置为

    2.7K20

    MagicalRecord,一个简化CoreData操作的工具库

    例如,如果我们有一个Person实体对象,并且我们需要设置它的firstName和lastName字段,下面的代码展示了如何使用MagicalRecord来设置一个后台保存的上下文对象: // 获取上下文环境...(下图中的 mappedKeyName为系统保留字段,用来指定要映射的key,具体细节往下阅读即可) 供参考: 用户的模型信息中的键和值在一个字典中存储,每个实体,属性,和关系都关联这样一个字典.这个字典可以通过...如果一个CoreData模型中的属性或关系名与要导入的数据中的某个键匹配,那你不需要做任何事 - 键对应的值会自动导入....firstName键对应的值....Boolean 为true时,如果要导入的数据没有对应的键,就使用此属性预设的默认值.

    1.6K50

    iOS面试题梳理(二)

    KeyPath、KVC、KVO 键路径(KeyPath): 1.在一个给定的实体中,同一个属性的所有值具有相同的数据类型。 2.键-值编码技术用于进行这样的查找,它是一种间接访问对象属性的机制。...键路径是一个由用点作分隔符的键组成的字符串,用于指定一个连接在一起的对象性质序列。第一个键的性质是由先前的性质决定的,接下来每个键的值也是相对于其前面的性质。...允许一个类在某些特定时刻通知到其他类,而不需要获取到那些类的指针。可以减少框架复杂度。 3.另外一点,代理可以理解为java中的回调监听机制的一种类似。...如果需要了解使用方法,请看谓词的具体使用. static、self、super关键字的作用 1.函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值...它不是一个数据库,不仅可以使用SQLite数据库来保持数据,也可以使用其他的方式来存储数据。如:XML。

    1.2K101

    iOS中KVC与KVO的应用解析 原

    iOS中KVC与KVO的应用解析 一、NSKeyValueCoding(KVC) 1、从一个小例子引入 KVC键值编码是Object-C为我们提供的一种对成员变量赋值的方法。...+ (BOOL)accessInstanceVariablesDirectly; 这个方法类似一个开关,默认返回为YES,表示支持KVC方式赋值,也可以在子类中将其重写,如果返回为NO,则再进行KVC会抛出异常...- (id)valueForUndefinedKey:(NSString *)key; 这个方法可以获取没有提前定义的成员变量的值,比如运行时创建的,下面这个方法是给未定义的成员变量赋值 - (void...NSArray *)keys; 根据键值获取键值对字典 - (void)setValuesForKeysWithDictionary:(NSDictionary *)keyedValues; 通过字典对成员变量同意赋值...,经常使用 二、NSKeyValueObservingCustomization(KVO) KVO是一种消息监听机制,可以在某个量发生变化的时候将消息传送给监听者,因此广泛用于传值,界面低耦合等逻辑中。

    32410

    iOS进度指示器——NSProgress 原

    iOS进度指示器——NSProgress 一、引言         在iOS7之前,系统一直没有提供一个完整的框架来描述任务进度相关的功能。...-1之间的浮点值,为任务的完成比例。...,实际上,在开发中,一个任务中往往又有许多子任务,NSProgress是以树状的结构进行设计的,其支持子任务的嵌套,示例如下: - (void)viewDidLoad { [super viewDidLoad...        在NSProgress对象的用户字典中可以设置一些特定的键值来进行显示模式的设置,示例如下: //设置剩余时间 会影响localizedAdditionalDescription的值...必须将NSProgress对象的kind属性设置为 NSProgressKindFile NSProgressFileOperationKindKey键对应的是提示文字类型 会影响localizedDescription

    1.7K20

    SciPy 稀疏矩阵(3):DOK

    这种时间复杂度在散列表与其他数据结构相比时,如二分搜索树或数组,显示出显著的优势。然而,为了保持散列表的高效性,我们必须处理冲突,即当两个或更多的键映射到同一个内存位置时。...开放寻址法是一种在散列表中解决冲突的方法,其中每个单元都存储一个键值对和一个额外的信息,例如,计数器或下一个元素的指针。...考虑到散列表是按照键来快速计算(时间复杂度 O(1))出对应值的内存地址,然后按照内存地址读取对应的值;又因为对于一个矩阵的元素访问操作而言,我们都是根据行列索引来获取对应位置的值。...显然,我们需要把非零元素的行列索引作为散列表的键,非零元素的值作为散列表的值。...案例 考虑到散列表可以在时间复杂度为 O(1) 的情况下按照关键字查找对应值,因此 SciPy 的 DOK 格式也可以在时间复杂度为 O(1) 的情况下按照行列索引查找或者修改对应元素的值,因此我们完全可以先构造一个全

    37850

    iOS-Foundation框架中常用的类

    NSUInteger length; 代表子串在主串中匹配的长度. } NSRange; 如果没有找到:location 为NSUInteger的最大值, 也就是NSNotFound,length的值为...所以,判断主字符串中是否包含子字符串,只需要判断返回的NSRange结构体变量的length是否为0就可以。 在主串中搜索子串.从后往前搜索. 第1次匹配的子串....这些对象在NSArray数组中有序存放一个挨着一个。...)objectForKey:(KeyType)aKey; // 获取键对应的值 @property (readonly, copy) NSArray *allKeys; // 获取所有的...当往字典数组中存储1个键值对的时候,这个键值对并不是按照顺序挨个挨个的存储的,存储键值对的时候,会根据键和数组的长度做1个哈希算法,算出1个下标,将这个键值对存储在该下标处。

    1.7K100

    iOS使用UIImagePickerController调用系统相机、相册与图库

    *)picker; 上面方法中的编辑字典与信息字典中,约定好了一些键值对,开发者可以通过相应的键获取需要的信息,规则如下: //这个键对应NSString类型的值 意义为媒体文件的格式 UIKIT_EXTERN...NSString *const UIImagePickerControllerMediaType; //这个键对应UIImage类型的值 意义为获取的原始图片 UIKIT_EXTERN NSString...*const UIImagePickerControllerOriginalImage; //这个件对应UIIImage类型的值 意义为获取编辑后的图片 UIKIT_EXTERN NSString *...const UIImagePickerControllerEditedImage; //这个键对应一个NSValue值 可以转为CGRect类型 意义为编辑的图片范围 UIKIT_EXTERN NSString...; //这个键对应图库中的URL UIKIT_EXTERN NSString *const UIImagePickerControllerReferenceURL; //这个键对应一个NSDictionary

    2.4K10

    iOS 传感器集锦

    // 这个属性应该是类似于支付宝的指纹开启应用,如果你打开他解锁之后,按Home键返回桌面,再次进入支付宝是不需要录入指纹的。...因为这个属性可以设置一个时间间隔,在时间间隔内是不需要再次录入。...[网络图片.png] [网络图片.jpg] 示例效果:图片旋转的第一张图片用于检测设备是否处于水平位置,第二张图是设备无论在竖直/水平方向上怎么旋转,图片都保持于水平/竖直方向垂直。...,其它的用法都差不多,只是相关的方法名称、属性名称和返回的参数类型和值不同,详情可以看demo,注释还算清晰;对于眼镜的绘制可以看下我之前的笔记:CALayer系列、CGContextRef、UIBezierPath...利用摄像头获取环境光感参数,通过摄像头采集环境参数,然后在代理方法中输出,光感越小,环境越暗,然后根据需要做相应的操作。

    1.5K80

    SDWebImage源码阅读-第三篇

    2.如果第一个字节是数据为0x52,需要进一步检测,因为以0x52为文件头的文件也可能会是rar等类型(可以在文件头查看),而webp的前12字节有着固定的数据: ?...UIImage+GIF 在介绍这个分类之前,我们要弄清一个问题,iOS展示gif图的原理: 1.将gif图的每一帧导出为一个UIImage,将所有导出的UIImage放置到一个数组 2.用上面的数组作为构造参数...举例来说,如果拍摄时相机摆放角度为逆时针旋转90度(对应着的EXIF值为8),拍摄出来的图片显示效果为顺时针旋转了90度(这就好比在查看时相机又摆正了,实际上在windows下的图片查看器显示为顺时针旋转了...至于相机摆放的角度如何与EXIF值对应,请参照这篇文章《如何处理iOS中照片的方向》,注意的就是iphone的初始方向是横屏home键在后侧的情况。...在网上有很多介绍如何获取正向图片的方法,它们的思路大多是这样:根据图片的方向值来逆向旋转图片。

    1.3K50

    iOS键值观察KVO实例详解简介实例效果实现方式进阶用法

    我们在开发应用时经常需要进行通信,比如一个model的某个数据变化了,界面上要进行相应的变化,但是如果我们程序并不知道数据什么时候会进行变化,总不能一直循环判断有没有变化吧,那么就需要在数据变化时给controlller...他的实现机制为,为可能改变的数据增加一个观察者,在上面的说法中这个观察者就是controller,它去观察这个数据有没有发生变化,一旦发生变化,就会得到一个信号,从而获取到变化的数据,进行自己要做的操作...我们创建一个学生模型,这个模型有两个属性,一个为姓名,一个为分数。label这是读取模型的数据来进行显示。...第一个参数是观察者,这里被观察者是学生模型,观察者是controller,也就是self 第二个参数是keyPath,其实也就是要观察的键 第三个是一个options,这里我们写的是一个枚举值,这个地方可以填几种值...options参数 在添加观察者时有一个options参数,在回调获取变化时有一个change参数,这两个参数其实是对应的,都是用来增加传递变化的丰富度。

    37330

    Collections工具类与map集合

    Map集合: Map集合是一个双列集合,也叫键值对集合,是java.util.Map接口,是以一键一值为结构的集合。...Map集合必须拿着键来操作值,Map接口下有HashMap和Hashtable两个集合类。前者是非线程安全的,键值可以写null,后者是带有线程安全的,键值不可以写null。...Map集合方法:   put添加方法,添加一个键和一个值: ?  ...containsKey方法用于查找一下有没有这个键,containsValue方法用于查找一下有没有这个值,有则返回true没有则会返回false: ?  ...在for each还没出来前只能使用迭代器的拿值方式: ? 运行结果: ? size得到集合的大小: ? remove删除某个键的数据: ? get得到某个键的值: ? clear清除数据: ?

    47910
    领券