代码之家  ›  专栏  ›  技术社区  ›  Richard

如何在iPhone上使用self-class方法?(概念问题)

  •  -2
  • Richard  · 技术社区  · 7 年前

    我在ClassName.m中编写了一个实例方法:

    -(void)methodName:(paraType)parameter
    {...}

    并称之为使用

    [self methodName:parameter]; 

    这是因为我没有创建该类的实例吗?为什么该方法仍然正常运行?调用self方法来防止警告的正确方法是什么?

    4 回复  |  直到 17 年前
        1
  •  5
  •   Andrew Grant    17 年前

    收到带有警告的帮助的第一步是张贴警告:)

    我想这是关于一条未被识别的信息?如果是这样,那是因为尽管编译器看到了对“methodName”的调用,但它不知道该调用对对象是否有效。

    我猜你的代码看起来像;

    -(void) someFunc
    {
      ...
      [self methodName:parameter]; 
      ...
    }
    
    -(void)methodName:(paraType)parameter
    {
    ...
    }
    

    a) 将“methodName”函数放在文件的前面,以便编译器在调用中使用它之前看到它。

    b) 在类接口中声明它。例如。

    // Foo.h
    @interface Foo {
    ...
    }
    -(void) methodName:(paraType)parameter;
    @end
    
        2
  •  1
  •   bjartek    17 年前

    您使用的语法是对self调用方法的propper方法。

        3
  •  1
  •   user23743 user23743    17 年前

    id -methodName:

        4
  •  1
  •   Dan    15 年前

    如果收到警告,可能是因为方法签名不在接口中。

    @interface foo ....
    
    -(void)method;
    

    一旦编写了实现,警告就会消失,因为这不是编译器第一次看到该方法。如果不这样做,它将工作,但警告消息很烦人。