代码之家  ›  专栏  ›  技术社区  ›  Felixyz

3.0头中缺少nsmaptable?

  •  0
  • Felixyz  · 技术社区  · 16 年前

    我在一个必须同时在3.0和2.2.1下运行的程序中使用nsmaptable。正如预期的那样,程序编译2.2.1库时没有问题,但是当我切换到3.0时,我得到编译器错误:

    error: expected specifier-qualifier-list before 'NSMapTable'
    

    换句话说,Xcode找不到nsmaptable类的声明。我必须在自己的头中输入一个前向声明(@class nsmaptable),然后

    #import <Foundation/NSMapTable.h>
    

    在我的实现文件中,为了能够使用nsmaptable。

    对此有什么解释吗?或者只是一个简单明了的错误?

    (我应该指出,我确实在使用nsmaptable的类的头文件中进行了导入,但仍然需要特定的导入。)

    1 回复  |  直到 16 年前
        1
  •  1
  •   Becca Royal-Gordon    16 年前

    我也不认为nsmaptable在2.2版上也可以用于为“设备”编译的应用程序;它只在“模拟器”上可用。由于3.0的模拟器是设备更精确的表示,因此该头不再可用。幸运的是,您可以使用nsdictionary和围绕键和值的适当nsvalue或nsnumber包装器对象完成nsmapTable可以完成的大部分工作。