欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > > 内容正文

Objective-C语法学习 初学者必备文档

来源: 开发者 投稿于  被查看 29546 次 评论:233

Objective-C语法学习 初学者必备文档


Objective-C语法学习是本文要介绍的内容,主要介绍了变量方法对象等一些内容。我们一起来看详细内容。

变量定义

interface 文件*.h)中定义,定义要放在 interface 名称后的括号内

对象的定义要用指针[NSButton *aButton;],使用正常名称

普通变量正常定义使用

方法定义

interface 文件*.h)中定义,定义放在括号外且 @end 标记前

以符号[-]表对象方法,[+]表静态方法)开头,其次以括号括起来的返回值类型,然后是方法名称,以冒号开始参数的加入,参数按正常定义格式,但要把类型以括号括起来,第一个参数以后的参数要加标志符,以分号结束[-(void)testFunction:(NSString *)aString secondPara:(int)aInt;]

方法名以小写字母开头

方法的实现

implementation 文件*.m)中定义,文件中先以 import 关健字引入 interface 文件[#import "MyClass.h"],方法定义在    @implementation和@end关键字之间定义方法,跟定义在interface中对方法的定义类似,但方法的实现在大括号之间

方法的参数是方法的一部分,如果参数是指针则在使用时要重新分配内存,用后要释放内存,如果是普通变量则正常使用,如:

  1. -(void)setName:(NSString *)tmpName{  
  2.     [tmpName retain];  
  3.     [tmpName release];  
  4.     tmpName = name;  

释放内存操作放在对tmpName的调用之后,调用一个释放的方法。

初始化类的对象可以在方法[-(id)init{}]中实现。

方法及变量的使用

实例化一个对象:先分配内存并创建类

  1. {MyClass *anInstance=[MyClass alloc;]} 

然后初始化对象:{[anInstance init]}(调用了实例的init方法),则一般实例化为:

  1. {MyClass *anInstance =[[MyClass alloc] init];} 

以中括号来调用{[object message]},以分号结尾

参数在对象操作后加入{[object method:para1 labelPara2:para2]},方法可做嵌套,在要使用的地方以同样的方式调用即可

调用同一个类中的其它方法,对象名用 self

使用实例直接调用对象的变量是可以的,但最好通过方法访问变量

返回值可以正常使用

当然用alloc创建了实例,也要释放:

  1. {[anInstance release];} 

内存自动释放方式

以 stringWithSting 代替 alloc ,可以使系统自动释放内存

创建对象:

  1. +(id)stringWithString:(NSString *)aString;  
  2. *aString =[NSString stringWithString:@"Hello,World!"] 

实例化对象时设置自动回收:

  1. {MyClass *anInstance=[[[MyClass alloc] init] autorelease];} 

一般的语言使用关键字class来定义类,而objective-c是使用关键字@interface加上@end来声明,用关键字@implementation加上@end来定义类。其二,用类的对象来调用该类的方法时,一般的高级语言都是用对象名加上符号‘.’来调用,但是objective-c是用中括号把对象名和所调用的方法名括起来调用。

(1)Objective-C的编译器处理后缀为m的文件时,可以识别Objective-C和c的代码,处理mm文件可以识别Objective-C,c,c++代码,但cpp文件必须只能用c/c++代码,而且cpp文件include的头文件中,
也不能出现Objective-C的代码,因为cpp只是cpp

(2)在mm文件中混用cpp直接使用即可,所以Objective-C混cpp不是问题

(3)在cpp中混用Objective-C其实就是使用Objective-C编写的模块是我们想要的。

如果模块以类实现,那么要按照cpp class的标准写类的定义,头文件中不能出现Objective-C的东西,包括#import cocoa的。实现文件中,即类的实现代码中可以使用Objective-C的东西,
可以import,只是后缀是mm。如果模块以函数实现,那么头文件要按c的格式声明函数,实现文件中,c++函数内部可以用Objective-C,但后缀还是mm或m。

总结:只要cpp文件和cpp include的文件中不包含Objective-C的东西就可以用了,cpp混用Objective-C的关键是使用接口,而不能直接使用实现代码,实际上cpp混用的是Objective-C编译后的o文件,
这个东西其实是无差别的,所以可以用。而Objective-C混用cpp就简单了,直接用就可以,因为Objective-C的编译器支持啊

小结:Objective-C语法学习 初学者必备文档的内容介绍完了,希望本文对你有所帮助!

用户评论