【问题标题】:What is the difference between these two syntax types? (Objective-C)这两种语法类型有什么区别? (目标-C)
【发布时间】:2011-12-08 01:46:39
【问题描述】:

我只是想了解这种语法

我知道

[instanceOfClass  Method];

例如。 [myImage setImage:[NSImage imageNamed:@"picture.jpg"]];

在类的实例上执行一个方法。

但这是如何工作的..

Variable = [Class methodName];

例如。 int Value = [sender intValue];

谁能给我解释一下。我知道第一个示例对类、类或变量的实例执行了一个方法..

但是后半部分是如何工作的呢?

非常感谢。

【问题讨论】:

    标签: objective-c cocoa variables syntax methods


    【解决方案1】:

    有实例方法(使用- 定义)和类方法(使用+)。实例方法在实例中调用,类方法在类中调用。

    - (void)instanceMethod;
    + (void)classMethod;
    

    除此之外,你举例:

    int Value = [sender intValue];
    

    似乎是一个实例方法。如果它在一个动作中,请记住 sender 只是一个参数:

    - (IBAction)startWork:(id)sender
    {
      ...
    }
    

    【讨论】:

      【解决方案2】:

      第二个示例也在类的实例上执行一个方法,但该方法返回一个值,该值分配给等式左侧的值。

      我建议花一点时间阅读introduction provided by Apple。这个具体问题是discussed in this part of the document

      与标准 C 函数一样,方法可以返回值。下列 如果将 myRectangle 绘制为 实心矩形,如果仅以轮廓形式绘制,则为 NO。

      BOOL isFilled;
      
      isFilled = [myRectangle isFilled];
      

      【讨论】:

      • 谢谢。我还在学习和阅读这本新书《Beginning Mac Programming, design with Objective C and Cocoa》。到目前为止它确实很有帮助,但只是需要清理一些东西。你有没有机会给我一个我给你的例子,但不同的是,告诉我它到底做了什么?
      • 轰隆隆。我们开始了,非常感谢你的例子,现在一切都说得通了。非常感谢先生。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-12
      • 2013-09-08
      • 2019-03-31
      • 2020-01-22
      • 1970-01-01
      相关资源
      最近更新 更多