Effective Objective-C 2.0学习(一)

本文介绍了OC作为C语言的超集,其面向对象的特性和内存管理机制。OC使用消息结构而非方法调用,具备引用计数机制。文章还讨论了对象在堆中声明的方式以及变量在栈中的使用情况。

OC是C语言的超集,使用了面向对象的特性。OC使用消息结构(messaging structure)而非方法调用(function calling),区别在于,消息结构在运行时决定执行的代码,而方法调用,由编译器决定。
OC使用引用计数机制,熟悉C的内存模型有助于了解OC的内存管理。
OC的对象都是声明在堆(heap)中,写法: NSString *somgString = @"The string"; 在栈(stack)中声明是不合法的, NSString someString;
区别:堆一般由程序员分配,而栈由编译器分配
OC的内存管理已经抽象出来,叫做引用计数(reference counting),不需要程序员去malloc和free。
有些OC的变量(非对象)是使用栈空间的,比如:CGRect,相当于C的结构体。因为频繁地创建释放OC的对象,会影响性能。

在类的头文件中尽量少引入其他头文件,这样做可以尽可能的减少编译时间,并减少相互依赖。此时,使用向前声明(forward declaration)。
有些情况,比如声明遵循某个协议,首先考虑把这些协议声明移到class-continuation分类中,其次或放置到一个单独的只包含协议的头文件中。

转载于:https://www.cnblogs.com/horo/p/8915518.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值