这两种语法类型有什么区别? (目标C)

时间:2011-10-14 20:48:41

标签: objective-c cocoa variables syntax methods

我只想试着理解这种语法

我知道

[instanceOfClass  Method];

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

对类的实例执行方法。

但这是如何运作的..

Variable = [Class methodName];

例如。 int Value = [sender intValue];

有人可以向我解释这个。我得到的是第一个示例在类,类或变量的实例上执行方法。

但后一部分如何运作?

非常感谢。

2 个答案:

答案 0 :(得分:4)

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

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

除此之外,你举例:

int Value = [sender intValue];

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

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

答案 1 :(得分:3)

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

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

  

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

BOOL isFilled;

isFilled = [myRectangle isFilled];