自定义初始化的方法
标题对象的初始化
- 对象必须先创建,然后初始化,才能使用
NSObject *object = [[NSObject alloc] init]
首先为对象分配内存地址,为初始化做准备。初始化是对象创建过程中将新分配对象的状态设置为合理的初始值。使之处于可用状态的阶段。用过约定,我们要求初始方法以init开头,并且在成功完成初始化后,返回当前对象,如果是被则返回nil;
- 自定义初始化方法示例
-(id) initWithAge:(int)age {
self = [super init];
if(self != nil){
_age = age;
//init code
}
return self;
}
在init方法中,若要父类完成所需的一次性初 始化,需要调用[super init],init方法返回的值,描述了被初始化的对象。
将[super init] 的结果赋给self是Objective-C的标准还礼,这么做事为了防止父类在初始化过程中返回的对象不同于原先创建的对象。
注意:NSObject 中含有description 可以 重写 并自创建字符串 用来打印自身属性
-(NSString *) description {
NSString *s = [[NSString alloc]initWithFormat :@"名字:%@,总页数:%ld",_name,_pageNumber]}
return s;
}
//打印
Book *book = [[Book alloc] init];
NSLog(@"%@",book);
self、super关键字
//1、id 关键字 :通用类型 ,可以代表任何对象类型
id p1 = [[Person alloc]init];
//2、self 关键字:指的是类对象本身
类方法 :可以直接调用类方法
+(void) setName{
[self setAge]
}
+(void) setAge{
NSLog(@"类方法调用")
}
//3、super关键字:是福类对象本身
点语法的使用
-
传统方式调用方法
[对象 方法名] -
点语法调用(只能调用set/get方法)
对象.(set省略)小写 ——(例如:p.name)
类与类之间的关系
-
继承关系
-
关联关系
其他知识点
- C语言转OC
NSString *s = [[NSString alloc] initWithCString:s1 encoding:NSUTF8StringEncoding]