zoukankan      html  css  js  c++  java
  • 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 类似的接 口但是支持插入空值和任意指针 

  • 相关阅读:
    java-实现两种排序方法
    暑假,一遍一遍敲代码吧!
    java学习-如何定义一个函数及其简单练习
    关于函数重载的理解
    java学习中关于函数的练习
    在校大三学生,真心想学好计算机。可是,,,,没有目标,。。。。。。
    伪分布式网络爬虫框架的设计与自定义实现(一)
    网站架构成长路程之 箴言
    使用asp.net mvc + entityframework + sqlServer 搭建一个简单的code first项目
    使用visualStudio2017创建一个简单的控制台程序
  • 原文地址:https://www.cnblogs.com/yeng/p/7133310.html
Copyright © 2011-2022 走看看