防止崩溃常用到的几种判断

本文深入探讨了Objective-C与Swift两种编程语言在iOS开发领域的应用,包括它们各自的优势、特点以及如何在实际项目中选择合适的语言。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

复制代码
  1. id obj=self;
  2. if ([obj respondsToSelector:@selector(function1:)) {
  3. }
  4. //obj 是否响应 function1
  5. if ([obj isKindOfClass:[NSArray class]] ) {
  6. }
  7. //obj 是否是NSArray 类型
  8. if ([obj conformsToProtocol:@protocol(myProtocol)]) {
  9. }
  10. //obj 是否符合myProtocol协议
  11. if ([[obj class] isSubclassOfClass:[NSArray class]]) {
  12. }
  13. //obj 是否是NSArray的子类
  14. [obj someNonExistFunction];
  15. NSString *diviceVersion = [UIDevicecurrentDevice].systemVersion;

    float diviceFloat = [diviceVersion floatValue];

    if (!(diviceFloat>=5.0)) {####}

    判断设备的系统版本

  16. 看似很简单的语句,但是为了让语言实现这个能力,语言开发者要付出很多努力实现runtime环境。这里运行时环境处理了弱类型、函数存在检查工作。runtime会检测注册列表里是否存在对应的函数,类型是否正确,最后确定下来正确的函数地址,再进行保存寄存器状态,压栈,函数调用等等实际的操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值