动态机制那些不为人知的秘密

1.动态机制的特点:

静态分配在编译和链接时确定内存大小,在运行过程中不能改变,

动态分配克服了这个限制,但仍存在很多限制,如:

编译时期的类型匹配,程序的边界地址在链接时期必须确定,应用程序的每个部分必须组织成一个单独的可执行文件,运行时不能加入新的模块和类型。

oc基本克服了这些限制,把很多编译时期的需要做的决定放到运行时做,

动态加载:没有面向对象时,程序被链接成一个执行文件,在运行时一次性加载到内存,动态加载指程序各个部分被动态链接在一起,容许运行后按需动态加载和链接不同的文件,

2.动态机制意义:程序可以不需一次开发完成,扩展性,对已有的程序加入新功能

3.有关类的问题

问题(1):对象是否为class-object或其子类的成员

方法:-(BOOL) isKindOfClass:class-object

注意:class-object是根据类名或一个对象生成一个class-object,可以发送class消息 

问题(2):对象是否为class-object?

方法:-(BOOL) isMemberOfClass:class-object

问题(3):类是指定类的子类么?

方法:+(BOOL) isSubclassOfClass:class-object

问题(4):对象是否能响应selector方法?

方法:-(BOOL) respondsToSeletor:selector

注意:@selector指令:为某个方法生成一个SEL值

4.异常处理机制

@try {

        [f nosuchMethod];    //[对象名 方法]

}

@catch (NSException * e) {

NSLog(@"\nname:%@\nreason:%@\n", [e name], [e reason]);

}

@finally {

NSLog(@"finally");     //此处可以不写,但不管有没有异常,finally都会运行

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值