6

谁能解释下面的代码?

- (id)initWithTitle:(NSString*)title ratings:(float)rating;

(NSString*)title = first parameter , type =string, name = title

rating:(float)rating = ? ? ?这是什么意思 ?

浮点数是一种类型,如果第二个评级是参数的名称,则开始评级是什么。

4

4 回答 4

28

Objective-C 方法被设计为自我记录,它们借鉴了 Smalltalk 的丰富传统。

我会试着解释你在这里有什么,-(id)initWithTitle:(NSString*)title rating:(float)rating;

- (id)

第一部分表明这是一个返回 id 对象的 Objective C 实例方法。(-破折号)表示这是一个实例方法,其中 a+表示这是一个类方法。括号中的第一个值是方法的返回值。

initWithTitle:

这部分是消息名称的一部分。在这种情况下,完整的消息名称是initWithTitle:rating:。Objective-C 运行时获取此方法信息并将其发送到指定的接收器。在纯 C 中,这看起来像 id initWithTitle(NSString* title, float rating). 但是,由于这是 Objective-C,附加信息被打包到消息名称中。

(NSString*)title

这部分是输入的一部分。这里的输入是类型的NSString*,并且有一个局部变量名称为title。

rating:

这部分是消息名称的第二部分。正如您在此处看到的,消息名称被拆分以帮助指示您传递给接收者的信息。因此,如果我要使用变量 foo 和 bar 向对象 myObject 发送消息,我会键入: [myObject initWithTitle:foo rating:bar]; 而不是 C++ 样式: myObject.initWithTitle(foo, bar);

(float)rating

这是输入的最后一部分。这里的输入是 float 类型,并且有一个名为 rating 的局部变量。

希望这会有所帮助!

于 2012-08-30T04:24:25.450 回答
2

这将指导您了解如何声明函数。

Objective-C 函数概述

于 2012-08-30T04:23:13.813 回答
2

initWithTitle是objective-c中的方法名,

title和分别是和的rating两个参数。initWithTitle methodstringfloat

whereratings只是参数第二部分的名称或标识符。

您可以使用以下方法调用此方法:[self initWithTitle:str ratings:0.5];

我希望你的疑问现在很清楚:)

于 2012-08-30T04:41:30.903 回答
0
- (id)initWithTitle:(NSString*)title ratings:(float)rating;

在里面你知道

(NSString*)title= 第一个参数,type=字符串,name= 标题

同样的方法

ratings:(float)rating ratings:是连接参数,type= float 并且rating是此函数中的占位符名称。

于 2016-06-02T06:13:41.853 回答