isKindOfClass和isMemberOfClass

https://github.com/ming1016/study/wiki/Objc-Runtime

先看看isKindOfClass和isMemberOfClass在Object.mm中的实现

- (BOOL)isKindOf:aClass
{
     Class cls;
     for (cls = isa; cls; cls = cls->superclass)
          if (cls == (Class)aClass)
               return YES;
     return NO;
}

- (BOOL)isMemberOf:aClass
{
     return isa == (Class)aClass;
}
时间: 2024-10-10 18:19:34

isKindOfClass和isMemberOfClass的相关文章

isKindOfClass和isMemberOfClass的区别

isKindOfClass和isMemberOfClass的区别 isKindOfClass和isMemberOfClass 都是NSObject的比较Class的方法 但两个有很大区别: isKindOfClass来确定一个对象是否是一个类的成员,或者是派生自该类的成员 isMemberOfClass只能确定一个对象是否是当前类的成员 例如:我们已经成NSObject派生了自己的类,isMemberOfClass不能检测任何的类都是基于NSObject类这一事实,而isKindOfClass可

OC中isKindOfClass与isMemberOfClass的区别

先给出官方介绍 isKindOfClass:Returns a Boolean value that indicates whether the receiver is an instance of given class or an instance of any class that inherits from that class. isMemberOfClass:Returns a Boolean value that indicates whether the receiver is

isKindOfClass和isMemberOfClass 区别

isKindOfClass和isMemberOfClass 都是NSObject的比较Class的方法. 但两个有很大区别: isKindOfClass来确定一个对象是否是一个类的成员,或者是派生自该类的成员. isMemberOfClass只能确定一个对象是否是当前类的成员. 例如: NSArray *arr1 = [NSArrayarray]; NSArray *arr2 = [NSArrayarray]; NSObject *ob = [[NSObjectalloc] init]; NSL

isKindOfClass,isMemberOfClass

- (BOOL)isKindOfClass:(Class)aClass; - (BOOL)isMemberOfClass:(Class)aClass; 特点: 1.isKindOfClass   判断是否是这个类(包括其父类及根类)或者这个类的子类的实例 2. isMemberOfClass  判断是否是这个类的实例 3.二者都可以判断是否是这个类

isKindOfClass和isMemberOfClass 的区别

判断对象类型 -(BOOL) isKindOfClass: classObj判断是否是这个类或者这个类的子类的实例 -(BOOL) isMemberOfClass: classObj 判断是否是这个类的实例 测试实例: 新建Person类继承NSObject,新建Teacher类继承Person 新建Person类: #import <Foundation/Foundation.h> @interface Person : NSObject { NSString *name; } -(void

isKindOfClass:和isMemberOfClass:-b

isKindOfClass: Returns a Boolean value that indicates whether the receiver is an instance of given class or an instance of any class that inherits from that class. (required) isKindOfClass能确定一个对象是否是一个类的成员,或者是派生自该类的成员 isMemberOfClass: Returns a Boolea

iOS开发之Runtime机制深入解析

本篇主要讲述在 OC 开发中主要涉及到的运行时机制: 运行时的工作: 运行时在 OC 中的工作:OC 语言的设计模式决定了尽可能的把程序从编译和链接时推迟到运行时.只要有可能,OC 总是使用动态的方式来解决问题.这意味着 OC 语言不仅需要一个编译器,同时也需要一个运行时系统来执行编译好的代码.这儿的运行时系统扮演的角色类似于 OC 语言的操作系统,OC 基于该系统来工作.  运行时的简单应用: OC 2.0运行时系统参考库描述了OC 运行库的数据结构和函数接口.程序可以通过这些接口来和 OC

iOS开发——高级特性&amp;Runtime运行时特性详解

Runtime运行时特性详解 本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机.主要内容如下: 引言 简介 与Runtime交互 Runtime术语 消息 动态方法解析 消息转发 健壮的实例变量(Non Fragile ivars) Objective-C Associated Objects Method Swizzling 总结 引言 曾经觉得Objc特别方便上手,面对着 Cocoa 中大量

OC运行时编程指南

一.介绍 OC这个语言尽可能的将一些决定从编译和链接时推迟到运行时.它会尽可能的动态的处理事情.这意味这个语言不仅需要一个编译器,还需要一个运行时系统去执行编译过的代码.这个运行时系统扮演着对于OC这个语言操作系统的的角色,使得这个语言得以运行. 这个教程将探究NSObject这个类以及OC这个语言和运行时系统是如何进行交互的.特别是如何在运行时动态的根据类的范式加载类,并且传递给其他对象.同时这个教程还将告诉你如何在你的程序运行过程中找到你的对象的运行信息. OC运行时编程指南描述了OC运行时