黑马程序员--Objective-C——OC特有语法一
来源:互联网 发布:数据仓库和数据集市 编辑:程序博客网 时间:2024/04/28 22:41
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、@property和@synthesize
@property和@synthesize是OC的编译器的特性,这两个关键字可以帮助我们自动生成属性的get方法和set方法。
<span style="background-color: rgb(255, 255, 255);">#import <Foundation/Foundation.h> @interface Car : NSObject{ //int _speed; //int _wheels;}@property int speed;@property int wheels;@end</span>
@property int speed; 这句代码会自动生成属性_speed的声明
<span style="background-color: rgb(255, 255, 255);">- (void)setSpeed:(int)speed;- (int)speed;</span>
<span style="background-color: rgb(255, 255, 255);">#import "Car.h"@implementation Car@synthesize speed = _speed;@synthesize wheels = _wheels;@end</span>
@synthesize speed = _speed;会自动生成_speed的setter和getter实现
相当于
<span style="background-color: rgb(255, 255, 255);">- (void)setSpeed:(int)speed{_speed = speed;}- (int)speed{return speed;}</span>
需要注意的是,如果在声明中没有这个属性,@synthesize会自动创建对应的以下划线开头的@Private类型的成员变量。如果写成@synthesize speed;,则会访问名字为speed的成员变量。自从XCode4.4以后,@property就包含了synthesize的功能。因此只要在声明中写一个@property int speed;就可完成成员变量_speed的申明与getter和setter的实现。
二、id
id在OC中是一个万能指针,能指向和操作任何OC对象,相当于NSObject *。一般用于OC方法的参数,可以传任何对象进去。
三、构造方法
我们之前创建对象时,是使用的new类方法。其实,这个类方法内部调用了两个方法:alloc和init。alloc为对象分配空间,init执行对象的初始化。
Person *p = [Person new];
等价于
Person *p = [[Person alloc] init];
这个init方法,就是系统默认的构造方法。
我们可以重写这个方法,在创建对象时就会执行我们重写的方法,可以实现一些我们的编程需要。
重写构造方法的格式
<span style="background-color: rgb(255, 255, 255);">- (id)init{// 1.需要先执行父类的构造方法,初始化父类中的属性,返回的id对象赋值给当前对象 self = [super init];// 2.如果父类初始化成功if (self != nil){ // 3.执行当前对象的初始化操作}// 4.返回初始化完的对象return self;}</span>
如果构造方法含有参数,使用initWith... and....
例如initWithName:(NSString *)name andAge:(int)age
- 黑马程序员--Objective-C——OC特有语法一
- 黑马程序员--Objective-C——OC特有语法二
- 黑马程序员——Objective-C语言知识点总结之OC特有语法
- 黑马程序员---OC特有语法(一)
- 黑马程序员——OC---OC特有语法01
- 黑马程序员——OC---OC特有语法02
- 黑马程序员——OC基础---OC特有语法
- 黑马程序员---OC--特有语法
- 【黑马程序员】iOS学习之路——Objective-C之特有语法
- 黑马程序员--Objective-C语言基础知识--特有语法
- 黑马程序员——OC语言------OC特有语法:分类、description、类对象、SEL
- 黑马程序员—OC(归纳总结OC特有的语法)
- 黑马程序员 oc的特有语法
- 黑马程序员--oc:特有语法1
- 黑马程序员--oc:特有语法2
- 黑马程序员---OC特有的语法
- 黑马程序员---OC特有语法(二)
- 黑马程序员-OC特有语法-学习笔记
- 通过XML格式,读取CSV文件
- 解决桌面菜单残留问题
- linux虚拟机挂载光盘时报错mount: you must specify the filesystem type
- [转]LDO的地脚电流(GROUND CURRENT)和静态电流(QUIESCENT CURRENT)的区别是什么啊?
- 新组建整理
- 黑马程序员--Objective-C——OC特有语法一
- 大型网站系统架构的演化
- ubuntu下安装与卸载软件方法
- 获得 本机 ip 配置信息
- 通用adapter
- instanceof 关键字
- SVN使用教程总结
- ADS-B显示终端6.8
- IOS开发系列—Objective-C之Foundation框架