1.自动生成getter setter方法
xcode4.4之前:
方法声明里@property——–@property 数据类型 名称
方法实现里@synthesize——-@synthesize @property的名称
xcode4.4之后:
@property增强
只需要写1个@property 编译器就会自动
a.生成私有属性
b.生成getter setter的声明
c.生成getter setter的实现
2.判断对象中是否有这个方法:
-(BOOL)respondsToSelector:(SEL)aSelector;
3.判断类中是否有指定的类方法:
+(BOOL)instancesRespondToSelector:(SEL)aSelector;
4.判断指定的对象是否为指定类的对象或者子类对象:
-(BOOL)isKindOfClass:(Class)aClass;
5.判断对象是否为指定类的对象,不包括子类:
-(BOOL)isMemberOfClass:(Class)aClass;
6.判断类是否是另一个类的子类:
+(BOOL)isSubclassOfClass:(Class)aClass;
7.构造方法:
[类名 new]=[[类名 alloc] init]
重写init方法:
a.必须先调用父类的init方法,然后将方法的返回值赋给self
b.调用init方法初始化对象有可能会失败,如果初始化失败,返回nil;
c.判断父类是否初始化成功,判断self的值是否为nil,如果不为nil则初始化成功
d.如果初始化成功,就初始化当前对象的属性
e.最后返回self的值
-(instancetype)init{
self=[super init];
if(self!=nil){
self.name=@"jack";
}
return self;
}
Que1.为什么要调用父类的init方法?
Ans:因为父类的init方法会初始化父类的属性,所以必须要保证当前对象中的父类属性也同时被初始化。
Que2:为什么要赋值给self?
Ans:因为调用父类的init方法,会返回初始化成功的对象,实际上返回的就是当前对象,但是我们要判断是否初始化成功
8.自定义构造方法:
规范:
a.自定义构造方法的返回值必须是instacetype
b.自定义构造方法的名称必须以initWith开头;
c.方法的实现和init的要求一样