黑马程序员技术交流社区

标题: 怎么理解OC语法中的”[ ]“中括号 [打印本页]

作者: 宋佳强    时间: 2014-7-7 17:59
标题: 怎么理解OC语法中的”[ ]“中括号
怎么理解OC语法中的”[  ]“中括号,例如:
  1. Student *stu = [[[Student alloc] init] autorelease];
复制代码




作者: fantacyleo    时间: 2014-7-7 18:21
OC中用[]表示消息传递(messaging),[Student alloc]意思是向Student对象发送名为alloc的消息。消息传递是面向对象语言诞生之初的叫法,现在多数面向对象语言把这叫作方法调用,用点语法操作。比如[Student alloc]在Java中就是Student.alloc
作者: Medwyn    时间: 2014-7-7 18:40

[ ]在OC中就是用来发送消息的,也就是所谓的“消息机制”。你那个代码例子意思就是:
向Student发送一条alloc消息,创建了一个新对象,再向这个对象发送一条init消息来初始化这个对象,最后给这个新建的对象发送一条autorelease消息来自动释放内存。
搜索“消息机制”你会得到更为详尽的答案~
以上

作者: Medwyn    时间: 2014-7-7 18:57
fantacyleo 发表于 2014-7-7 18:21
OC中用[]表示消息传递(messaging),[Student alloc]意思是向Student对象发送名为alloc的消息。消息传递是面 ...

技术分遥遥无期啊这样,又不想水贴。。
作者: huangqiwa    时间: 2014-7-8 00:24
Medwyn 发表于 2014-7-7 18:57
技术分遥遥无期啊这样,又不想水贴。。

只要认证回答了问题,版主都会看到并且加分的!
作者: 余武超    时间: 2014-7-8 13:02
个人感觉,就像是调用方法的一个形式, [Student alloc]就是Student调用已经存在的alloc方法来分配内存。
作者: 董月峰    时间: 2014-7-8 21:41
oc 其实底层是用 c 语言实现的,每个[]都是执行一句  c 语言运行时代码
作者: hm123tinghai    时间: 2014-7-8 21:58
进来学习一下。
作者: chengnuoaini030    时间: 2014-7-8 22:52
还没看到,进来看下 0.0




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2