任何人都可以解释以下代码吗?
- (id)initWithTitle:(NSString*)title ratings:(float)rating;
(NSString*)title = first parameter , type =string, name = title
rating:(float)rating = ? ? ?
这是什么意思?
如果第二个评级是参数名称,则浮动是一种类型,在开始时是什么评级。
答案 0 :(得分:28)
Objective-C方法旨在自我记录,并借鉴了Smalltalk的丰富传统。
我会尝试解释你在这里有什么,-(id)initWithTitle:(NSString*)title rating:(float)rating;
- (id)
第一部分表明这是一个返回id对象的Objective C实例方法。 -
(破折号)表示这是一个实例方法,其中+
表示这是一个类方法。括号中的第一个值是方法的返回值。
initWithTitle:
此部分是消息名称的一部分。在这种情况下,完整的消息名称是initWithTitle:rating:
。 Objective-C运行时获取此方法信息并将其发送到指示的接收器。在纯C中,这看起来像
id initWithTitle(NSString* title, float rating)
。但是,由于这是Objective-C,因此其他信息将打包到消息名称中。
(NSString*)title
此部分是输入的一部分。此处的输入类型为NSString*
,并且具有标题的本地变量名称。
rating:
此部分是消息名称的第二部分。正如您在此处所看到的,消息名称被拆分以帮助指示您传递给接收器的信息。因此,如果我用变量foo和bar向对象myObject发送消息,我会输入:
[myObject initWithTitle:foo rating:bar];
而不是C ++风格:
myObject.initWithTitle(foo, bar);
。
(float)rating
这是输入的最后一部分。这里的输入是float类型,并且有一个局部变量名称rating。
希望这有用!
答案 1 :(得分:2)
这将指导您了解如何声明函数。
答案 2 :(得分:0)
initWithTitle
是objective-c中的方法名称,
title
和rating
分别是initWithTitle method
和string
float
的两个参数。
其中ratings
只是给参数第二部分的名称或标识符。
您可以使用以下方法调用此方法:[self initWithTitle:str ratings:0.5];
我希望你现在明白我的疑问:)
答案 3 :(得分:0)
- (id)initWithTitle:(NSString*)title ratings:(float)rating;
你知道吗
(NSString*)title
=第一个参数,type
=字符串,name
=标题
同样的方式
ratings:(float)rating
ratings:
是参数,type
= float,rating
是此函数中的占位符名称。