NSHashTable NSPointerArray
NSHashTable和NSMapTable能够对持有的对象做strong或weak存储,弱持有weak引用对象,当weak对象释放后会自动从表中移除 http://blog.csdn.net/jijunyuan/article/details/39962923
NSHashTable/NSSet: (都是数组且无序)(NSPointerArray有序)
- NSSet/NSMutableSet 对其对象是强引用,使用isEqual方法去检查对象是否相等,使用方法hash去获取hash值。
- NSHashTable是可变的,没有一个不变的和其对应。
- NSHashTable 可以对其对象是weak 引用。
- NSHashTable 可以在输入(加入)的时候 copy 对象。
- NSHashTable 可以包含任意指针,使用指针去做相等或者hashing检查。
- NSHashTable使用一个option去初始化,下面是可用的选项:
- NSHashTableStrongMemory:和 NSPointerFunctionsStrongMemory相同,使用此选项为默认的行为,和NSSet的内存策略相同。
- NSHashTableWeakMemory:和 NSPointerFunctionsWeakMemory相同,此选项使用weak存储对象,当对象被销毁的时候自动将其从集合中移除。
- NSHashTableCopyIn :和 NSPointerFunctionsCopyIn 相同,此选项在对象被加入到集合之前copy它们。
- NSHashTableObjectPointerPersonality:和NSPointerFunctionsObjectPointerPersonality相同,此选项是直接使用指针进行isEqual:和 hash。
NSMapTable相对于NSDictionary
- NSMapTable和NSDictionary相对应,相对于NSDictionary/NSMutableDictionary,NSMapTable有如下的特征:
- NSDictionary/NSMutableDictionary会copy对应的key,强引用相应的value。
- NSMapTable是可变的,没有一个不变的类与其对应。
- NSMapTable 可以对其 key和 value弱引用,在这种情况下当key或者value被释放的时候,此entry会自动从NSMapTable中移除。
- NSMapTable 在加入一个(key,value)的时候,可以对其value设置为copy。
- NSMapTable可以包含任意指针,使用指针去做相等或者hashing检查。
- 下面的NSMapTable例子中,key不是copy的(强引用的),value为弱引用。
NSMapTable对象在初始化的时候使用options去分别指定keys和values的行为。NSMapTableStrongMemory:指定对应的key或者value为强引用。NSMapTableWeakMemory:指定对应的key或者value为弱引用。 NSMapTableCopyIn:指定对应的key或者value在加入到集合中的时候为copy。NSMapTableObjectPointerPersonality:此选项是直接使用指针进行isEqual:和 hash 。
NSPointerArray 能存储C字符串
它指定了一个和 NSArray 类似的接 口但是支持插入空值和任意指针
NSHashTable NSPointerArray的更多相关文章
- Cocoa 集合类型:NSPointerArray,NSMapTable,NSHashTable
iOS 中有很多种集合类型,最为常见的可能就 NSArray.NSDictionary.NSSet,但其实还有 NSPointerArray.NSMapTable.NSHashTable 等类型,虽然 ...
- NSMapTable、NSHashTable与NSPointerArray的封装
NSMapTable.NSHashTable与NSPointerArray的封装 说明 NSMapTable对应NSDictionary:NSHashTable对应NSSet:NSPointerArr ...
- 捉襟见肘之NSMutableSet和NSPointerArray
用来学习复习记录,其他优秀的译文,点击这里 一.NSMutableSet NSMutableSet和NSMutableArray存放数据方式分别是无序和有序,这说明,数组是可以通过index获取对象. ...
- NSHashtable and NSMaptable
本文转自Nidom的博客,原文:<NSHashtable & NSMaptable> NSSet, NSDictionary, NSArray是Foundation框架关于集合 ...
- ios NSHashTable & NSMapTable
在ios开发中大家用到更多的集合类可能是像NSSet或者NSDictionary,NSArray这样的.这里要介绍的是更少人使用的两个类,一个是NSMapTable,另一个是NSHashTable. ...
- 【转】NSHashtable and NSMaptable
本文转自Nidom的博客,原文:<NSHashtable & NSMaptable> NSSet, NSDictionary, NSArray是Foundation框架关于集合 ...
- NSHashTable 和 NSMapTable学习
今天,在实现play gif时间功能,我看见两个陌生班,只需看看这个纪录: NSSet和NSDictionary是两个经常使用的类,可是他们默认假定了当中对象的内存行为.对于NSSet.object是 ...
- 使用NSHashTable存储引用对象
NSHashTable 我们使用集合(NSArray,NSMutableArray,NSDictionary,NSMutableDictionary,NSSet,NSMutableSet)存储对象时会 ...
- 速查 NSArray NSSet NSHashTable 快速遍历之速度比较
因为NSArray中的指针并不是简单的连续存放的,所以简单的测试了Cocoa的三种集合的快速遍历(NSFastEnumeration)性能,给出简单的参考. 添加元素: [collection add ...
随机推荐
- Linux中计划任务、周期性任务设置
Linux中计划任务.周期性任务设置 计划任务:指在未来的特定时间里,执行一次某一特定任务.当然,如果同一任务需要在不同时间点执行执行两次.三次或多次,可以视为多个一次看待. 周期性任务:指某一任务需 ...
- 5月16 JSON的一些知识点及AJAX的应用
什么是JSON? JSON(JavaScript Object Notation)是一种轻量级的数据交换语言,以文字为基础,(文本数据交换格式).JSON简单说就是javascript中的对象和数组, ...
- vivado实现模16的计数器
`timescale 1ns / 1ps module ctr_mod_16( clk, rst_n, count ); input clk, rst_n; :] count; wire clk, r ...
- 百度地图API 自定义坐标点及图片
var map = new BMap.Map("allmap");var point = new BMap.Point(105.955754,36.525109);map.cent ...
- CRM BP SEARCH 优化
出于方便的目的,这边将BU_GROUP,SALE_ORG加到了BP搜索里面,因为CRM项目推广了很多国家,每个国家一个SALE ORG,而标准的BP HEADER ADV SEARCH里竟然没有BU_ ...
- zzw原创_根据某一文件复制出大量固定位数后缀名的递增的文件
1.trre.sh :根据某一文件复制出大量固定位数后后缀递增的文件. 如将 SPINFO_190516_20170109.001 复制成SPINFO_190516_20170109.002 ...
- [CodeForces - 614E] E - Necklace
E - Necklace Ivan wants to make a necklace as a present to his beloved girl. A necklace is a cyclic ...
- Async:简洁优雅的异步之道
前言 在异步处理方案中,目前最为简洁优雅的便是 async函数(以下简称A函数).经过必要的分块包装后,A函数能使多个相关的异步操作如同同步操作一样聚合起来,使其相互间的关系更为清晰.过程更为简洁.调 ...
- 利用神经网络进行网络流量识别——特征提取的方法是(1)直接原始报文提取前24字节,24个报文组成596像素图像CNN识别;或者直接去掉header后payload的前1024字节(2)传输报文的大小分布特征;也有加入时序结合LSTM后的CNN综合模型
国外的文献汇总: <Network Traffic Classification via Neural Networks>使用的是全连接网络,传统机器学习特征工程的技术.top10特征如下 ...
- stund客户端使用结果说明
stun服务器是用于检测网络类型的重要工具. 源码地址:https://svwh.dl.sourceforge.net/project/stun/stun/0.97/stund-0.97.tgz 或者 ...