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

移动开发 iOS
本文介绍的是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语法学习 初学者必备文档的内容介绍完了,希望本文对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-12 10:27:52

Objective-C对象

2011-08-17 12:03:36

Objective-C

2011-08-10 19:16:50

Objective-C变量

2011-08-10 19:01:18

Objective-C

2011-08-18 15:19:28

XcodeObjective-C语法

2011-08-29 15:45:59

Lua函数

2011-08-23 14:01:03

LUA

2011-08-01 11:49:05

Objective-C

2009-09-10 13:54:27

LINQ语法

2011-08-24 17:19:20

Lua源文件

2011-08-11 10:50:08

xcode调试文件

2011-08-24 09:54:05

Lua字符春交互

2015-07-07 10:43:59

Swift语法基础

2015-07-07 10:58:29

Swift语法高级

2011-08-15 17:06:01

Objective-CNSLog

2011-09-08 10:38:37

Widget

2011-08-02 13:16:36

Objective-C 语法 函数

2011-05-11 13:54:08

Objective-C

2014-04-30 10:16:04

Objective-CiOS语法

2011-08-10 16:44:56

iPhone代理设计模式
点赞
收藏

51CTO技术栈公众号