第1条:了解Objective-C语言的起源

[编写高质量iOS代码的52个有效方法](一)Objective-C基础

参考书籍:《Effective Objective-C 2.0》 【英】 Matt Galloway

先睹为快

1.了解Objective-C语言的起源
2.在类的头文件中尽量少引入其他头文件
3.多用字面量语法,少用与之等价的方法
4.多用类型常量,少用#define预处理器指令
5.用枚举表示状态、选项、状态码

目录

第1条:了解Objective-C语言的起源

Objective-C与C++,Java等面向对象语言的区别在于Objective-C使用“消息结构”,而不是“函数调用”。Objective-C语言是由消息型语言鼻祖Smalltalk演化而来。

消息与函数调用之间的语法区别:

<code class="hljs javascript has-numbering"><span class="hljs-comment">// 消息(Objective-C)</span>
<span class="hljs-built_in">Object</span> *obj = [<span class="hljs-built_in">Object</span> <span class="hljs-keyword">new</span>];
[obj performWith:parameter1 and:parameter2];

<span class="hljs-comment">// 函数调用(C++)</span>
<span class="hljs-built_in">Object</span> *obj = <span class="hljs-keyword">new</span> <span class="hljs-built_in">Object</span>;
obj->perform(parameter1,parameter2);</code><ul style="" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li></ul>

关键区别在于:使用消息结构的语言,其运行时所应执行的代码由运行环境来决定;而使用函数调用的语言,则由编译器决定。Objective-C的重要工作都由运行时组件而非编译器完成。

Objective-C是C的超集,所以C语言中的所有功能在编写Objective-C代码时依然适用。理解C语言的内存模型尤为重要,这有助于理解Objective-C的内存模型及其引用计数机制的工作原理。Objective-C语言中的指针是用来指示对象的。想要声明一个变量,另其指代某个对象:

<code class="hljs objectivec has-numbering"><span class="hljs-built_in">NSString</span> *someString = @<span class="hljs-string">"the string"</span>;
<span class="hljs-built_in">NSString</span> *anotherString = someString;</code><ul style="" class="pre-numbering"><li>1</li><li>2</li></ul>

两个变量都是指向NSString的指针。所有Objective-C语言的对象都必须这样声明,因为对象所占内存总是分配在堆中,而不是栈中。不在再栈上分配Objective-C对象。而两个变量所占内存都分配在栈上,且两块内存里的值一样,都是NSString对象的内存地址。

http://jz.gexing.com/wuxienanpaisanshu/post/4190011

http://jz.gexing.com/wuxienanpaisanshu/post/4190010


http://jz.gexing.com/wuxienanpaisanshu/post/4190011

http://jz.gexing.com/wuxienanpaisanshu/post/4190010

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值