本文是对OC中常见数据结构的一个记录,希望可以在之后的开发生涯中可以灵活使用这些集合类,而不是只局限于数组、字典这两个集合类!
常见的集合类
常见数据结构有NSArray、NSDictionary、NSSet、NSHashTable、NSMapTable
集合类的特点:以面向对象的方式操作数组,存放的数据类型可以不是同一种数据类型,但是只能存储对象,不能存储基本数据类型如int, struct,enum等
- NSArray(NSMutableArray) - 有序数组,可以重复
- NSSet(NSMutableSet) - 无序数组,不允许重复元素存在
- NSDictionary(NSMutableDictionary) - 以key/value进行数据存储,key要实现NSCopying协议,对保存的value进行强引用
- NSHashTable - NSSet的通用版本,有更多的内存语义,支持弱引用关系
- NSMapTable - NSDictionary的通用版本,有更多的内存语义,支持弱引用关系
NSHashTable/NSMapTable常用的内存语义:
NSHashTableStrongMemory/NSPointerFunctionsStrongMemory - 这是默认的管理方式,这样等同于NSSet。
NSHashTableWeakMemory/NSPointerFunctionsWeakMemory - 使用对象的弱引用进行读写操作,当在对象被释放之后会返回NULL
NSHashTableCopyIn/于NSPointerFunctionsCopyIn - 使用copy的方式加入对象
生活如此美好,今天就点到为止。。。
网友评论