Xcode将NSMutableArray与NSMutableDictionary混淆

时间:2011-08-25 23:04:41

标签: ios xcode nsmutablearray nsmutabledictionary

我正在编写一个iOS应用程序,它要求我使用一些NSMutableArray。之前,我使用的是NSMutableDictionary(在相同的变量名下),但我注释掉了与字典有关的代码。现在,当使用NSMutableArray时,我正在调用方法-addObject:。但是,Xcode不断给我一个警告,说“NSMutableDictionary可能不响应-addObject:”。但是,我已经检查过,并再次检查,定义和分配都说NSMutableArray不是NSMutableDictionary。我甚至尝试在我的课堂上评论出NSMutableDictionary代码,但警告仍然存在。应用程序运行正常,可以成功执行方法,但警告很烦人。我正在使用Snow Leopard 10.6.8,Xcode 4.0.2。我尝试重新启动Xcode,但它没有帮助。有什么建议吗?

·H:

NSArray *array;
NSMutableArray *mutableArray;

的.m

//allocation
mutableArray = [[NSMutableArray alloc] init];

//line where I get warning
[mutableArray addObject:someObj];

我测试的每个阵列都会发生这种情况。

2 个答案:

答案 0 :(得分:-1)

我现在不在我的工作站,但尝试> man xcodeindex,它可以为你清理索引。 (如果它仍在10.6)

输入Xcode的首选项,然后找到“位置”窗格。在其中,您拥有“派生数据”,其中包含有关项目的各种非主要信息。您可以通过单击路径右侧的小箭头导航到它。

关闭所有Xcode项目并退出Xcode。现在,删除Derived Data文件夹的内容,然后重新打开您的项目。 Xcode应该(很快)重新生成索引。

答案 1 :(得分:-2)

好的,这就是发生的事情。有一个版本的.m和两个版本的.h。 .m正在导入.h的错误版本 - 我没有更新的版本。因此,当我更新.h时,它没有做任何事情。在我删除错误的.h并将正确的.h添加到项目后,一切正常 - 警告消失了.h的变化反映在.m中。