object-C语言特性(一)

来源:互联网 发布:网狐6603棋牌源码下载 编辑:程序博客网 时间:2024/06/05 02:52

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
原创粉丝点击