object-C语言特性(一)

Object-C 语言使用”消息结构“而非函数调用。该语言是由Smalltalk演化而来,后者是消息型语言的鼻祖。
关键区别在于:使用消息结构的语言,其运行时所执行的代码由运行环境所决定;而使用函数调用语言,由编译器决定。
Object-C语言对象所占的内存总是分配咋堆空间(heap space),绝对不能分配到栈中。
如可以这样写:

NSString *string1 = @"string";
NSString *string2 = [[NSString alloc]initWithCString:"string " encoding:NSStringEncodingConversionAllowLossy];

而不能这样写:

NSString string3;

有时会遇到 不含*的变量,可能会使用栈空间,这些不是Object-C 对象。 如:
CoreGraphics框架中的CGRect

CGRect frame;
frame.origin.x=0.0f;
frame.origin.y=0.0f;
frame.size.width=0.0f;
frame.size.height=0.0f;

起结构体定义:

struck CGRectCGPoint origin;
    CGSize size;
};

Object-C将堆内存管理抽象出来,不需要malloc和free来分配或释放内存。运行期环境把这部分工作抽象为一套内存管理架构,名叫”引用计数“;

         参考《编写高质量IOS与OSX代码的52个有效方法》
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值