Objective c 为什么赢了';“方法未找到”警告是否会消失?
我有一个类的方法可以工作,我已经测试过了,但是xcode仍然对该方法发出警告:Objective c 为什么赢了';“方法未找到”警告是否会消失?,objective-c,iphone,Objective C,Iphone,我有一个类的方法可以工作,我已经测试过了,但是xcode仍然对该方法发出警告: MapPoint *mp = [[MapPoint alloc] initWithCoordinate:[newLocation coordinate] title:[locationTitleField text]]; 找不到“initWithCoordinate:title”方法?我无法说明您的具体情况(MapPoin
MapPoint *mp = [[MapPoint alloc] initWithCoordinate:[newLocation coordinate]
title:[locationTitleField text]];
找不到“initWithCoordinate:title”方法?我无法说明您的具体情况(MapPoint是框架类吗?),但您应该确保在导入的头文件中声明该方法
如果是这种情况,并且警告仍然存在,请尝试完全重建(清除+生成)。XCode有时有点奇怪。正如Johannes所说,应该在类的头文件中声明方法 如果未在类实现之外使用该方法,则可以在.m文件的顶部创建匿名类别声明:
@interface MapPoint()
- (id) initWithCoordinate:(MapCoordinate *)coordinate title:(NSString *)title;;
@end
匿名类别使用新方法“扩展”现有类。由于您是在源文件(.m)中声明它,而不是在头文件(.h)中声明它,因此只有该源文件中的代码才能看到它。是否需要声明头文件中的每个方法?如果它只在课堂上局部使用呢?正如菲利普·莱伯特所说的那样。该死,我太慢了;-)我相信“匿名类别”实际上被称为“扩展”,苹果称之为匿名类别,而不是扩展