很多想开发iOS,或者正在开发iOS的程序员,之前都做过Ja或者C++。当他们第一次看到Objective-C的代码时,他们会很头疼。Objective-C的代码和Ja、c++在语法上有很大的不同,有些同学会觉得像在读天书。但是,语言是相通的,有很多共性。下面是Objective-C语言与Ja、C++的语法对比,让你很容易理解Objective-C的语法是什么。
首先,看看Objective-C头文件和实现文件中的内容:
头文件:
实现文件,类似于。C++的cpp文件:
第一,功能比较
Helloworld方法
Ja语言:
public void helloWorld(bool ishelloworld) {//干点啥}
C++语言:
void helloWorld(bool ishelloworld) {//干点啥}
目标-C语言:
-(void) HelloWorld:(BOOL)ishelloworld{//干点啥}
前面带有减号(-)的方法是实例方法,只能通过使用类的实例来调用。对应的符号是+,表示它是类的静态方法,无需实例化即可调用。
第二,新闻。
消息的定义:向对象发送信息。
消息是ios运行时环境特有的机制。类似于C++,Ja下的类,或者实例调用类或实例。我说的是相似,他们的机制其实很不一样。
示例:
[对象消息]
[object message:param1 withParameter:param2]NSString *string;string = [[NSString alloc] initWithString:@”Hello”];
上面的代码类似于:
ja/c++:object.message()
ja/c++:object.message(param1,param2)
ja/c++:
string * str
str =新字符串(” Hello “);
三。导入
示例:
导入“Class.h”
导入& ltClass.h & gt
导入& ltdirector/class . h & gt;
这类似于C++中的include和Ja中的import。
第四,性质和合成
属性定义:@Property声明getter和setter,用于自动创建property属性变量。
Synthsize定义:@ Synthsize声明实现property属性变量的getter和setter。
示例:
在接口:@ propertydatatypevariablename
在实现中:合成变量名
第四,头文件中的方法
示例:
-(returnType)method -(returnType)method:(dataType)param1 -(returnType)method:(dataType)param1 withParam:(dataType)param2
类似于:
C/C++/Ja
returnType method() returnType method(param1) returnType method(param1,param2)
动词 (verb的缩写)自己
指向自己的指针
[自我方法]
类似于:c++/ja
this . method();
第六,继承关系和接口实现
示例:
ClassA:ParentA ClassA:ParentA<Protocol> ClassA <Protocol>
类似于:
ja:
ClassA extends ParentA ClassA extends ParentA implements interface ClassA implements interface
objective-c的协议类似于c++和ja的接口。
七,空指针
id obj = nil
NSString * hello = nil
Nil等价于Ja中的null
八、身份证
objective-c的id类似于C++中的(void*)
PS: Objective-C和Ja一样,有运行时环境和自省能力。Objective-C和ja有很多不同之处。在iOS系统中,Objective-C的内存需要自己管理。添加ARC机制后,编译器帮助Objective-C添加release发布的代码。Ja通过垃圾收集器管理内存。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。