从3.0标头中缺少NSMapTable?

时间:2009-07-07 23:32:13

标签: iphone iphone-sdk-3.0

我在一个必须在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的类的头文件中有#import,但仍然需要特定的导入。)

1 个答案:

答案 0 :(得分:1)

对于为“Device”编译的应用,我不相信NSMapTable可用于2.2;它只能在“模拟器”上使用。由于3.0的模拟器是设备的更准确表示,因此该标头不再可用。幸运的是,你可以做很多NSMapTable可以用NSDictionary和适当的NSValue或NSNumber包装对象围绕键和值。