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

复制代码
  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会检测注册列表里是否存在对应的函数,类型是否正确,最后确定下来正确的函数地址,再进行保存寄存器状态,压栈,函数调用等等实际的操作

你可能感兴趣的:(常用)