为什么找不到警告的方法会消失?

时间:2010-06-01 12:50:42

标签: objective-c iphone

我有一个类有一个有效的方法,我测试了它,但xcode仍然对该方法提出警告:

MapPoint *mp = [[MapPoint alloc] initWithCoordinate:[newLocation coordinate] 
                                              title:[locationTitleField text]];

没有找到'initWithCoordinate:title'方法?

2 个答案:

答案 0 :(得分:4)

我不能说你的具体情况(MapPoint是一个框架类吗?)但是你应该确保在导入的头文件中声明该方法。

如果是这种情况并且警告仍然存在,请尝试完全重建(清理+构建)。 XCode不时有点奇怪。

答案 1 :(得分:4)

正如Johannes所说,你应该在类的头文件中声明该方法。

如果您没有在类实现之外使用该方法,则可以在.m文件的顶部创建匿名类别声明:

@interface MapPoint()
- (id) initWithCoordinate:(MapCoordinate *)coordinate title:(NSString *)title;;
@end

匿名类别使用新方法“扩展”现有类。由于您在源文件(.m)中声明它而不是头文件(.h),因此只有该源文件中的代码才能看到它。