首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我很难理解Objective-J / Objective-C中的方法签名

我很难理解Objective-J / Objective-C中的方法签名
EN

Stack Overflow用户
提问于 2010-12-19 01:09:01
回答 2查看 227关注 0票数 0

我很难理解Objective-J中的方法签名(但在Objective-C上应该是一样的)。

语法应为:

代码语言:javascript
复制
-(return_type)instanceMethod1:(param1_type)param1_varName :(param2_type)param2_varName;

类型在括号之间指定。但是,我找到了以下代码行:

1)

代码语言:javascript
复制
var navigationArea = [[CPView alloc] initWithFrame:CGRectMake(0.0, 0.0, 150.0, CGRectGetHeight([contentView bounds]) - 150.0)];

为什么参数要在圆括号之间传递?我以为你会在冒号":“后面指定参数。

2)

代码语言:javascript
复制
-(void) importDocumentWithName:(NSString *)name withSpecifiedPreferences:(Preferences *)prefs beforePage:(int)insertPage;

什么是"withSpecifiedPreferences“?是描述吗?它有什么用呢?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-19 01:15:37

1)显示了两种风格的混合,Objective-C风格的方法调用:

代码语言:javascript
复制
[[CPView alloc] initWithFrame:...];

和C风格的函数调用:

代码语言:javascript
复制
CGRectMake(1, 2, 3, 4);

Objective-J是JavaScript的严格超集,这意味着除了JavaScript拥有的C风格的函数调用语法之外,您还可以使用消息传递语法。

2)中,withSpecifiedPreferences:是方法(或“选择器”)名称的一部分,请参见"Message Syntax"

票数 3
EN

Stack Overflow用户

发布于 2010-12-19 01:13:36

  1. 是因为CGRectMake()CGRectGetHeight()是C函数,而不是Objective-C或Objective-J方法。对于C函数调用,参数在括号中用逗号分隔。

然后,CGRectMake()的结果作为参数传递给CPView类的initWithFrame:方法,这是一个Objective-C方法。

  1. 关于你的第二个问题,我以前没有见过这个方法,所以我真的不知道prefs参数是用来做什么的...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4479098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档