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
@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的内省(Introspection)用法小结
- Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect实例分析
- Objective-C中使用NSString类操作字符串的方法小结
- Objective-C中NSNumber与NSDictionary的用法简介
- Objective-C中NSLog输出格式大全
- 浅析Objective-C的程序结构及面向对象的编程方式
- 全面解析Objective-C中的block代码块的使用
- Swift调用Objective-C编写的API实例
- Swift、Objective-C、Cocoa混合编程设置指南
- Objective-c代码如何移植为Swift代码 Objective-c代码转移到Swift过程介绍
- Swift调用Objective-C代码
- 以实例讲解Objective-C中的KVO与KVC机制
- 简介Objective-C解析XML与JSON数据格式的方法
- 浅析Objective-C中分类Category的使用
- 举例讲解Objective-C中@property属性的用法
- Objective-C编程中语句和变量的一些编写规范建议
- 理解Objective-C的变量以及面相对象的继承特性
- 简单讲解Objective-C的基本特性及其内存管理方式
- Objective-C中编程中一些推荐的书写规范小结
- Objective-C处理空字符串和页面传值及自定义拷贝