在xCode中调用方法

时间:2010-06-21 04:55:48

标签: iphone objective-c

调用方法时,我使用

[self methodname];

我遇到的问题是,xCode我收到很多警告!这是"*xxxappdelegate.app may not respond to methodname*"

有没有更好的方法来调用方法?

5 个答案:

答案 0 :(得分:5)

如果你收到警告,那就意味着:

  • 你的方法中不存在这种方法 上课
  • 如果您正在调用该方法 然后在另一个班级(不是自我) 你还没有导入标题 那个班级

答案 1 :(得分:4)

这些警告只是意味着编译器不知道有问题的类是否具有您正在调用的方法。确保您正在调用的方法定义在您正在使用它的.m文件中的位置之上,或者在文件顶部声明该方法。

@implemention A

-(void)blah
{
    [self foo]; // warning!
}

-(void)foo
{
    [self blah]; // no warning
}

@end

答案 2 :(得分:1)

有一种称为编译顺序的东西。当您调用方法foo时,它尚未定义,但是当您调用方法blah时,它仅在上面的行中定义。

更具体:

cout << a;
string a = "hello";

当您这样做时,您将收到错误未定义变量“a”。你应该做的是:

string a = "hello";
cout << a;

答案 3 :(得分:0)

methodname添加到您的示例中的类xxxappdelegate的@interface。或者只是确保methodname实现位于您在文件中调用它的位置之前。

答案 4 :(得分:0)

如果.h文件声明了方法,则可能存在与xcodes无法索引解决此问题的问题,请转到首选项并删除存档和其他存储数据。