【发布时间】:2011-08-25 23:04:40
【问题描述】:
我正在编写一个 iOS 应用程序,这需要我使用一些 NSMutableArray。之前,我使用的是 NSMutableDictionary(在相同的变量名下),但我注释掉了与字典有关的代码。现在,当使用 NSMutableArray 时,我正在调用方法 -addObject:。但是,Xcode 不断给我一个警告说“NSMutableDictionary 可能无法响应 -addObject:”。但是,我已经检查了一遍又一遍,定义和分配都说 NSMutableArray 而不是 NSMutableDictionary。我什至尝试在课堂上注释掉 NSMutableDictionary 代码,但是警告仍然存在。应用程序运行良好并且可以成功执行方法,但是警告很烦人。我正在使用雪豹 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];
我测试的每个数组都会发生这种情况。
【问题讨论】:
-
如果你发布一些代码,它会更容易追踪。您确定您还更改了标题中的变量类型吗?
-
您确定您更改了正确的 .h 文件吗?
-
是的。我检查了很多次。
-
您是否将其设为 setter 方法并在其中使用 NSMutableDictionary?
-
好的,这就是发生的事情。 .m 有一个版本,.h 有两个版本。 .m 导入了错误版本的 .h——我没有更新的那个。因此,当我更新 .h 时,它什么也没做。在我删除了错误的 .h 并将正确的 .h 添加到项目后,一切正常 - 警告消失了,.h 中的更改反映在 .m.
标签: ios xcode nsmutablearray nsmutabledictionary