我在一个必须在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,但仍然需要特定的导入。)
答案 0 :(得分:1)
对于为“Device”编译的应用,我不相信NSMapTable可用于2.2;它只能在“模拟器”上使用。由于3.0的模拟器是设备的更准确表示,因此该标头不再可用。幸运的是,你可以做很多NSMapTable可以用NSDictionary和适当的NSValue或NSNumber包装对象围绕键和值。