从 C++ 到 Objective-C(2):语法概述.doc

从 C++ 到 Objective-C(2):语法概述.doc

ID:53960853

大小:26.00 KB

页数:3页

时间:2020-04-11

从 C++ 到 Objective-C(2):语法概述.doc_第1页
从 C++ 到 Objective-C(2):语法概述.doc_第2页
从 C++ 到 Objective-C(2):语法概述.doc_第3页
资源描述:

《从 C++ 到 Objective-C(2):语法概述.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、从C++到Objective-C(2):语法概述作者: DevBean 日期:2011年03月18日发表评论 (2)查看评论关键字Objective-C是C语言的超集。类似于C++,良好的C源代码能够直接被Objective-C编译器编译。不同于C++直接改变C语言的设计思路,Objective-C仅仅是在C语言的基础上增加了一些概念。例如,对于类的概念,C++是增加了一个全新的关键字class,把它作为语言内置的特性,而Objective-C则是将类转换成一个struct去处理。所以,为了避免冲突,Objective-C的关键字都是以@开头。

2、一个简单的关键字列表是:@class,@interface,@implementation,@public,@private,@protected,@try,@catch,@throw,@finally,@end,@protocol,@selector,@synchronized,@encode,@defs。Objective-C2.0又增加了@optional,@required,@property,@dynamic,@synthesize这几个。另外的一些值同样也类似于关键字,有nil和Nil,类型id,SEL和BOOL,布尔变量YES和N

3、O。最后,特定上下文中会有一些关键字,分别是:in,out,inout,bycopy,byref,oneway和getter,setter,readwrite,readonly,assign,retain,copy,nonatomic等。很多继承自NSObject的函数很容易与关键字混淆。比如alloc,release和autorelease等。这些实际都是NSObject的函数。另外一个需要注意的是self和super。self实际上是每一个函数的隐藏参数,而super是告知编译器使用self的另外语义。注释Objective-C使用//和/

4、*…*/两种注释风格。变量声明的位置Objective-C允许在代码块的中部声明变量,而不仅仅在块的最开始处。新增的值和变量BOOL,YES,NOC++中使用bool表示布尔类型。Objective-C中则是使用BOOL,其值为YES和NO。nil,Nil和id简单来说:·每一个对象都是id类型的。该类型可以作为一种弱类型使用。id是一个指针,所以在使用时应注意是否需要再加*。例如id*foo=nil,实际是定义一个指针的指针;·nil等价于指向对象的NULL指针。nil和NULL不应该被混用。实际上,nil并不简单是NULL指针;·Nil等价

5、于指针nil的类。在Objective-C中,一个类也是一个对象(作为元类Meta-Class的实例)。nil代表NULL指针,但它也是一个类的对象,nil就是Nil类的实例。C++没有对应的概念,不过,如果你熟悉Java的话,应该知道每一个类对象都对应一个Class实例,类似这个。SELSEL用于存储选择器selector的值。所谓选择器,就是不属于任何类实例对象的函数标识符。这些值可以由@selector获取。选择器可以当做函数指针,但实际上它并不是一个真正的指向函数的指针。@encode为了更好的互操作性,Objective-C的数据类型

6、,甚至自定义类型、函数或方法的元类型,都可以使用ASCII编码。@encode(aType)可以返回该类型的C字符串(char*)的表示。源文件与C++类似,Objective-C同样建议将声明和实现区分开。Objective-C的头文件后缀名是.h,源代码后缀名是.m。Objective-C使用#import引入其它头文件。与#include不同的是,#import保证头文件只被引入一次。另外,#import不仅仅针对Objective-C的头文件,即便是标准C的头文件,比如stdlib.h,同样可以使用#import引入。C++头文件源文件

7、//InfileFoo.h#ifndef__FOO_H__//compilationguard#define__FOO_H__//classFoo{...};#endif//InfileFoo.cpp#include"Foo.h"...Objective-C头文件源文件//InfileFoo.h//classdeclaration,differentfrom//the"interface"Javakeyword@interfaceFoo:NSObject{...}@end//InfileFoo.m#import"Foo.h"@implement

8、ationFoo...@endNS前缀我们前面看到的类NSObject,NSString都有一个前缀NS。这是Cocoa框架的前缀(Cocoa开发公司

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。