谁能解释下面的代码?
- (id)initWithTitle:(NSString*)title ratings:(float)rating;
(NSString*)title = first parameter , type =string, name = title
rating:(float)rating = ? ? ?
这是什么意思 ?
浮点数是一种类型,如果第二个评级是参数的名称,则开始评级是什么。
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 的局部变量。
希望这会有所帮助!
这将指导您了解如何声明函数。
initWithTitle
是objective-c中的方法名,
title
和分别是和的rating
两个参数。initWithTitle method
string
float
whereratings
只是参数第二部分的名称或标识符。
您可以使用以下方法调用此方法:[self initWithTitle:str ratings:0.5];
我希望你的疑问现在很清楚:)
- (id)initWithTitle:(NSString*)title ratings:(float)rating;
在里面你知道
(NSString*)title
= 第一个参数,type
=字符串,name
= 标题
同样的方法
ratings:(float)rating
ratings:
是连接参数,type
= float 并且rating
是此函数中的占位符名称。