您的位置:首页 > 移动开发 > Objective-C

Objective-C学习

2016-04-24 14:24 513 查看
.h #import “其它.h文件”

@interface 类名: 父类

//public方法的声明

@end

.m #import “包含该类的.h文件”

@interface 类名()

//private方法的声明

@end

@implementation 类名

//public和private方法的定义

@end

//没有public和private的概念,写在.h里的就是public,只写在.m里的就是private。

//方法在定义之前必须先声明

方法的声明:

-(void)orbitPlanet: (Planet *) aPlanet

arAltitude: (double) km;

方法的定义:

-(void)orbitPlanet: (Planet *) aPlanet atAltitude:(double)km

{

}

@property声明了一个变量以及它的set和get方法

例:@property (nonatomic) double topSpeed;

相当于: -(void)setTopSpeed:(double)percentSpeedofLight;

-(double)topSpeed;

//property默认为atomic,意思是是线程保护的,但是这一属性会浪费资源,因此对于类似于只发生在主线程上的UI code可以声明为nonatomic来提高效率。

//使用@property来声明变量,不再需要声明set和get方法

//在oc中,永远都是用set和get方法来使用变量

@synthesize实例化@property,实例了set和get方法并为变量值分配了内存

例:@synthesize topSpeed = _topSpeed; //如果不写等于的话,相当于使用原变量名来访问这个实例,会有bug

相当于:-(void)setTopSpeed:(double)speed

{

_topSpeed = speed;

}

-(double)topSpeed

{

return _topSpeed;

}

//也可以自己根据需要实例化set和get。

例:@property (nonatomic, strong) Wormhole *nearestWormhole;

//所有的objects都使用指针来操作

//strong表示这要不释放这一指针,所指向的内存就不会变成nil。strong和weak的含义可参考博客http://blog.sina.com.cn/s/blog_7c8dc2d50101lc08.html

//所有的自动初始化值都是0,即nil,对nil的指针进行操作什么都不会发生。这一点在oc中需要被很好地利用。

例:@synthesize nearestWormhole = _nearestWormhole;

//实例化了get和set方法,并为这一指针分配了内存。注意并没有为指针所指向的对象分配内存。

使用[ ]来调用函数:[所调用函数的对象 调用的函数]

例1:double speed = [self topSpeed];//topSpeed的get函数的返回值付给speed变量

例2:[ [ self nearestWormhole] travelToPlanet:aPlanet

atSpeed:speed];

//当所调用的函数是get或set的时候,”[ ]“可以改为 ”.“

例:[self topSpeed] 改为 self.topSpeed
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  objective-c