Objective-C 特殊语法总结
来源:互联网 发布:mysql批量insert数据 编辑:程序博客网 时间:2024/05/01 09:31
38.@property
Objective-C语言关键词,与@synthesize配对使用。xcode4.5以及以后的版本,@synthesize可以省略
①基本概念
@property告诉编译器声明属性的访问起(getter/setter)方法,这样的好处是:免去我们手工书写get和set方法繁琐的代码。
②用法:
@property 类型名 方法名
@property int age;
/*相当于进行了age的set和get的方法声明;
-(void)setAge:(int)age;
-(int)age;
*/
39.@synthesize
①基本概念
@synthesize时在.m文件中定义set和get方法的实现。
②使用:
@property int age;
@synthesize age; //表示生成.h中变量age的get和set方法
40.动态类型&静态类型
多态:允许不同的类定义相同的方法。
动态类型:程序直到执行时才能确定所属的类。
静态类型:将一个变量定义为特定类的对象时,使用的是静态形态。
41.用NSObject访问子类对象方法
NSObject是所有类的基类,obj可以指向所有子类。
//定义id类型
NSObject *obj = [Person new];
[(Person*)obj test];
42.id类型
id是一种通用的对象类型,它可以用来存储属于任何类的对象,也可以理解为万能指针。
NSObjcet和id都可以指向任何对象,NSObject对象会进行编译时检查(需要强制类型转换),id不需要强制类型转换,id可以直接用。
编译器看到id以后,认为是动态类型,不在检查类型。
43.动态类型检测
对象在运行时获取其类型的能力成为内省。内省可以有多种方法实现。
①判断类型
1)-(BOOL)isKindOfClass:classObj:判断实例对象是否是这个类的子类的实例。
//判断p是否是NSObject的子类或其下子类的实例对象
BOOL b = [p isKindOfClass:[NSObject class]];
NSLog(@"%d",b);
2)-(BOOL)isMemberOfClass:classObj:判断是否时这个类的实例,不管是否时这个类的子类的实例。
//判断p是否为Person的实例对象
BOOL b1 = [p isMemberOfClass:[Person class]];
NSLog(@"%d",b1);
3)+(BOOL)isSubclassOfClass:classObj:判断类是否是指定类的子类
4)-(BOOL)respendsToSelector:selector:判断实例是否有这样方法能相应run方法
//判断实例对象是否能响应指定方法s1
SEL s2 = @selector(test);
BOOL b2 =[p respondsToSelector:s2];
NSLog(@"%d",b2);
5)+(BOOL)instancesResponndToSelector:判断类是否有这个方法。此方法是类方法,不能用在类的对象
44.构造方法
①构造方法的调用:完整的创建一个可用的对象:Person *p = [Person new]; new方法的内部会分别调用两个方法来完成3件事情:
1)使用alloc方法来分配存储空间(返回分配的对象);
2)使用init方法来对对象进行初始化;
3)返回对象的首地址;
45.自定义构造方法
①自定义搞糟方法的规范:
1)一定是对象方法,以减号开头;
2)返回值一般是id类型;
3)方法名一般以initWith开头;
②实现:
//自定义构造方法的声明
-(instancetype)initWithName:(NSString*)name andAge:(int)age;
//自定义构造方法的实现
-(instancetype)initWithName:(NSString*)name andAge:(int)age{
if (self = [super init]) {
_name = name;
_age = age;
}
return self;
}
//使用自定义构造方法
Person *p = [[Person alloc]initWithName:@"蛋蛋" andAge:1];
NSLog(@"name = %@,age = %d.",p.name,p.age);
- Objective-C 特殊语法总结
- Objective-C语法总结
- Objective-C 语法总结
- Objective-C语法小总结
- Objective C Programming( OC ) 语法特点总结
- Objective-C字面量语法总结
- Objective-C基础——语法总结
- 【黑马程序员】---Objective-C核心语法总结
- Objective-C字面量语法总结
- Objective-C 语法规范
- Objective-c语法速成
- objective c 语法记录
- Objective-C 基础语法
- Objective-c基本语法
- Objective-C 语法
- Objective-C 语法
- Objective C基本语法
- Objective-C语法入门
- ArcGIS for Android地图去除水印
- html解析器 HtmlAgilityPack
- mobileconfig文件的签名和认证(signed、verified)
- mysql 远程链接
- QT事件(3)
- Objective-C 特殊语法总结
- 我自己----生命的意义
- leetcode:Substring with Concatenation of All Words
- 调试方法
- DOS命令
- 生产消费模式
- iOS运行时场合一 category中添加(连接)对象(fake机制)
- 使用open方式的文件锁
- javascript canvas 碰撞检测