美文网首页
脚踏实地之集合类

脚踏实地之集合类

作者: lmfei | 来源:发表于2020-03-08 11:47 被阅读0次

    本文是对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的方式加入对象

    生活如此美好,今天就点到为止。。。

    相关文章

      网友评论

          本文标题:脚踏实地之集合类

          本文链接:https://www.haomeiwen.com/subject/wfmnrhtx.html