在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Objective C 2.0的一些新特性介绍 前两天在一朋友那儿,看到Apple公司最近发布的关于Objective C 2.0编程语言的介绍文档,呵呵,是全英文的哦!这两天忙里偷闲,看了一些,大致了解了一些Objective C 2.0相对于原来的Objective-C语言的一些改变情况。现在把Objective C 2.0的一些新特性介绍一点,和大家分享一下愚见。咱不仅要在硬件上啃苹果,也要在软件、内核编程上用力的咬上一口,哈哈,还蛮爽!(小弟英语很一般,有些地方翻译和理解的不到位的地方,大家多多斧正!) Apple向来对产品未来方向很有感觉,它在GCC的源代码库中拥有自己的一个独立分支,这些分支多数是开源的,所以对应的GCC编译器是免费的,但Objective-C 2.0的运行库不是免费的。 Objective-C 2.0对Objective-C的升级相当的好的, 新特性非常实用, 没有额外增加不必要关键字,而今天的C++看起来更加混乱。C++模板那些概念在Objective-C这样可以用弱类型的语言里面看起来都是不太必要的。 根据文档的介绍,Objective C 2.0主要突出了以下几点新的特性: (2) 垃圾回收器(garbage collection): (3)带属性的方法:
下面对以上新的特性做以下详细介绍: ③定义格式:@property(属性1[,属性2,…])类型名称(变量); 其中属性(attribute)和变量(variable)可以省略,attribute默认是readwrite和assign,variable默认和类型名称(name)是一致的,Variable必须是在interface里定义的变量。(在64bit里如果variable没有定义,XCode甚至可以自动添加对应的变量) 举例如下: // 在接口里面定义属性 @interface MyClass : NSObject { NSString *value; } @property(copy, readwrite) NSString *value; @end @implementation MyClass @synthesize value; @end 使用时可以通过MyClass.value来访问value变量,property的copy属性表明这个变量必须支持NSCopying协议。property的readwrite属性表明这个变量的属性可以被读写。 Attribute还可以是assign,Readonly,retain和nonatomic。分别表示该属性可以被赋值、只能被读取、保持上一次被赋的值和不自动从寄存器传递数值。 attribute还可以为assign(默认),assign就类似C的直接指针赋值,只传递对象内存位置,并不拷贝或者retain该对象。最典型的例子就是setDelegate:这样的方法设置一个delegate,delegate由于是一个不由被赋值类控制的对象,所以采用assign方式赋值。 -------->> 未完待续 |
请发表评论