黑马程序员-oc@property

@property NSString *name 

 1.成员变量的setget方法的声明和实现

2.会自动创建一个带下划线的成员变量_name

 

 

 @propert特性:

1.只能写在@interface…..@end

2.@property  用来自动生成成员变量的get/set方法声明(Xcode4.4以前)

3.Xcode4.4以后property做了增强  不但帮助我们自动生成get/set方法声明   还帮我们自动生成了set/get方法的实现  并且生成了带下划线的成员变量

 

 

Xcode4.4之前  @property NSString *name 配合@syncthesize name(@implementation @end)如果需要使用带下划线的成员变量,必须先定义一个带下划线的成员变量  (NSString *_name然后将  @syncthesize name;改成@syncthesize name = _name;

生成的成员变量默认是private(私有的)

 

 

Xcode4.4之后      一句话搞定    @property NSString *name   

自动生成带下划线的变量_name 

 自动实现成员变量的getset方法 

生成的成员变量默认是private(私有的)

 

如果系统生成的setget方法不能满足我们需求的时候  我们可以重写进行覆盖

set方法和get方法不能同时重写  只能重写一个

 

@synthesize用法:(Xcode4.4之前用synthesize)

1. @synthesize age; 表示成员变量agegetset方法的实现

 

2. @synthesize 给指定的实例变量赋值。

@synthesize age = _age;// 指定下划线成员变量

 

注意;

如果是@synthesize的话,变量名要先在.h文件中声明。

@property@synthesizexcode4.4之前,这两个可以配合使用,用于简化setget方法的定义和实现。

 

 

 

id类型 

idNSObject区别:

id不会进行编译检查,NSObject会进行编译检查 

 

idinstancetype类型区别:

1.idinstancetype都可以用来作为方法的返回值

2. id可以用来定义类型,instancetype不能用来定义类型

id  obj;

instancetype obj2; // 错误

 

3. instancetype可以精确确定返回值类型, id不能精确返回值类型

 

 

动态类型

1. 动态类型:

运行的时候确定的类型

 

2. 动态绑定:

动态绑定是基于动态类型的:

基于动态类型,在某个实例对象被确定后,其类型便被确定了。该对象对应的属性和响应的消息也被完全确定,这就是动态绑定。

动态绑定所做的,即是在实例所属类确定后,将某些属性和相应的方法绑定到实例上。

 

3.  动态加载:

动态创建类Class,动态添加Class成员变量与成员函数,动态变量赋值与取值,动态函数调用等;

 

 

4.  内省(Introspection)是面向对象语言和环境的一个强大特性,Objective-CCocoa在这个方面尤其的丰富。

内省是对象揭示自己作为一个运行时对象的详细信息的一种能力。这些详细信息包括对象在继承树上的位置,对象是否遵循特定的协议,以及是否可以响应特定的消息。

 

1isKindOfClass:Class

判断实例对象是否是这个类或者这个类的子类的实

例。

 

2isMemberOfClass:Class

判断是否是这个类的实例。

 

3+(BOOL) isSubclassOfClass:classObj

判断类是否是指定类的子类。

 

4respondToSelector:selector

确定对象是否可以对某个SEL做出响应

 

5+(BOOL) instancesRespondToSelector:

判断类是否有这个方法。此方法是类方法, 不能用在类的对象

 

 

6conformsToProtocol:protocol

检查对象是否符合协议,是否实现了协议中所有的必选方法。@required

 

 

构造方法

[[Person alloc]init]  

init方法就是构造方法   用来初始化对象的方法  这是一个对象方法      alloc  配合  init使用  不要单独使用 

nil  oc中对象的空值  

null  服务器返回字段的空值 <null>

NULL c语言中指针变量空值

Nil  类对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值