🔥iskindofclass和ismemberofclass(代码片段)

1-434 1-434     2022-12-01     552

关键词:

下面代码结果如何?
// insert code here...
BOOL re1 = [(id)[NSObject class] isKindOfClass:[NSObject class]]; //1
BOOL re2 = [(id)[NSObject class] isMemberOfClass:[NSObject class]];//0
BOOL re3 = [(id)[XZPerson class] isKindOfClass:[XZPerson class]];//0
BOOL re4 = [(id)[XZPerson class] isMemberOfClass:[XZPerson class]];//0
NSLog(@" 
re1 :%hhd
 re2 :%hhd
 re3 :%hhd
 re4 :%hhd
",re1,re2,re3,re4);
 
BOOL re5 = [(id)[NSObject alloc] isKindOfClass:[NSObject class]];//1
BOOL re6 = [(id)[NSObject alloc] isMemberOfClass:[NSObject class]];//1
BOOL re7 = [(id)[XZPerson alloc] isKindOfClass:[XZPerson class]];//1
BOOL re8 = [(id)[XZPerson alloc] isMemberOfClass:[XZPerson class]];//1
NSLog(@" 
re5 :%hhd
 re6 :%hhd
 re7 :%hhd
 re8 :%hhd
",re5,re6,re7,re8);
 
BOOL re9 = [(id)[NSObject class] isKindOfClass:[XZPerson class]];//0
BOOL re10 = [(id)[NSObject class] isMemberOfClass:[XZPerson class]];//0
BOOL re11 = [(id)[NSObject alloc] isKindOfClass:[XZPerson class]];//0
BOOL re12 = [(id)[NSObject alloc] isKindOfClass:[XZPerson class]];//0

技术图片

 

 

首先这个我们需要分析,这个其实主要考察的就是
  1. 类方法 isKindOfClass主要判断什么
解释: 消息接收者的元类对象是否属于传入的class或class的子类
  1. 类方法isMemberOfClass主要判断什么
解释: 消息接收者的元类对象是不是传入的class
  1. 实例方法 isKindOfClass主要判断什么
解释:for循环遍历查找,先看自己的class是不是与传入的class相同,如果不同,查找自己的父类是否与传入的class相同,如果相同,返回YES,如果依然不同,返回NO;
概括
消息接受者或消息接收者的父类是否属于class,换言之,消息接收者是否属于传入的class或class的子类。
  1. 实例方法isMemberOfClass主要判断什么
解释: 消息接收者的class是不是传入的class
 
解析:
1.NSObject的元类属于NSObject的子类(NSObject元类的父类为NSObject)。
2.NSObject的元类不是NSObject类。
3.MJPerson的元类不属于MJPerson类。
4.MJPerson的元类不是MJPerson类。
技术图片

 

 

 

 

🔥谈谈事件的产生和传递和响应

谈谈事件的产生和传递和响应? ??事件的产生我们知道UIApplication、UIViewController、UIView都是UIResponder的子类,都是可以处理事件的。在发生触摸事件的时候系统会先将该事件交给UIApplication处理,通常UIApplication先将事件交给UIWi... 查看详情

iOS isKindOfClass 和 isMemberOfClass 的区别

】iOSisKindOfClass和isMemberOfClass的区别【英文标题】:iOSdifferencebetweenisKindOfClassandisMemberOfClass【发布时间】:2011-04-0821:50:46【问题描述】:isKindOfClass:(Class)aClass和isMemberOfClass:(Class)aClass函数有什么区别?我知道这有点像,一个是全局... 查看详情

iskindofclass和ismemberofclass的区别

判断对象类型-(BOOL)isKindOfClass:classObj判断是否是这个类或者这个类的子类的实例-(BOOL)isMemberOfClass:classObj判断是否是这个类的实例测试实例:新建Person类继承NSObject,新建Teacher类继承Person 新建Person类:#import<Foundation/Foundation.h>@... 查看详情

🔥🔥如何令自己所写的对象具有拷贝功能?(代码片段)

实现NSCoping协议。如果自定义的对象分为可变版本与不可变版本,那么就要同时实现NSCopying与NSMutableCopying协议。@protocolNSCopying-(id)copyWithZone:(nullableNSZone*)zone;@end@protocolNSMutableCopying-(id)mutableCopyWithZone:(nullableNSZone*) 查看详情

奇怪的`isKindOfClass`行为

】奇怪的`isKindOfClass`行为【英文标题】:Strange`isKindOfClass`behaviour【发布时间】:2011-01-2011:00:20【问题描述】:参考下面的代码,我发现isKindOfClass无法识别一个类。idparent=[self.tableDataSourceobjectAtIndex:indexPath.row];//parentCanbeeither\'docum... 查看详情

isKindOfClass 行为

】isKindOfClass行为【英文标题】:isKindOfClassBehavior【发布时间】:2013-01-2301:51:36【问题描述】:有人可以解释为什么isKindOfClass根据实例的创建方式返回不同的结果吗?@interfaceBaseClass...@interfaceDerivedClassA:BaseClass...DerivedClassA*instance=[... 查看详情

🔥如果页面a跳转到页面b,a的viewdiddisappear方法和b的viewdidappear方法哪个先调用?(代码片段)

如果页面A跳转到页面B,A的viewDidDisappear方法和B的viewDidAppear方法哪个先调用?ViewController为一级界面,BViewController和CViewController为两个二级界面ViewController为一级界面,BViewController和CViewController为两个二级界面//我在两个VC里面都... 查看详情

git入门图文教程(1.5w字40图)🔥🔥--深入浅出图文并茂

Git是当前最先进、最主流的分布式版本控制系统,免费、开源!核心能力就是版本控制。本文深入浅出、图文并茂的展示了Git的入门系列教程。01、认识一下Git!—简介Git是当前最先进、最主流的分布式版本控制系统,免费、开... 查看详情

🔥uiviewcontroller的生命周期(代码片段)

UIViewController的生命周期#pragmamark---lifecircle//非storyBoard(xib或非xib)都走这个方法-(instancetype)initWithNibName:(NSString*)nibNameOrNilbundle:(NSBundle*)nibBundleOrNilNSLog(@"%s",__FUNCTION__);if(self=[supe 查看详情

isKindOfClass 抓取标签

】isKindOfClass抓取标签【英文标题】:isKindOfClassgrabtag【发布时间】:2012-04-2606:23:37【问题描述】:我只是想抓取ScrollView中的按钮标签1~5,其他数据不需要抓取(void)layoutScrollImagesUIImageView*view=nil;NSArray*subviews=[weekscrollsubviews];CGFloatcu... 查看详情

isKindOfClass 意外返回 NO

】isKindOfClass意外返回NO【英文标题】:isKindOfClassreturningNOunexpectedly【发布时间】:2012-08-2813:08:33【问题描述】:我的一个单元测试失败了,原因是我没有预料到的。似乎对isKindOfClass的调用返回NO,但是当我调试并逐步执行时,似... 查看详情

isKindOfClass 没有按预期工作

】isKindOfClass没有按预期工作【英文标题】:isKindOfClassdoesn\'tworkasexpected【发布时间】:2012-09-1210:30:25【问题描述】:我正在开发一个iOS5+项目(xcode4.4.1SDK5.1)我在单元测试中有这段代码:[_appDelegateapplication:nildidFinishLaunchingWithOpti... 查看详情

swift中的iskindofclass

参考技术ATheproperSwiftoperatorisis:iftouch.viewisUIPickerView//touch.viewisoftypeUIPickerViewOfcourse,ifyoualsoneedtoassigntheviewtoanewconstant,thentheiflet...as?...syntaxisyourboy,asKevinmentioned.Butifyoudon'tneedthevalueandonlyneedtocheckthetype,thenyoushouldusetheisoperator.来自网... 查看详情

oc中iskindofclass与ismemberofclass的区别

先给出官方介绍isKindOfClass:ReturnsaBooleanvaluethatindicateswhetherthereceiverisaninstanceofgivenclassoraninstanceofanyclassthatinheritsfromthatclass.isMemberOfClass:ReturnsaBooleanvaluethatindicateswhether 查看详情

在 Swift 中使用 isKindOfClass

】在Swift中使用isKindOfClass【英文标题】:UsingisKindOfClasswithSwift【发布时间】:2014-07-2401:21:54【问题描述】:我正在尝试学习一些Swift语言,我想知道如何将以下Objective-C转换为Swift:-(void)touchesBegan:(NSSet*)toucheswithEvent:(UIEvent*)event[su... 查看详情

🔥界面卡顿的原因?

界面卡顿的原因,界面为什么会卡顿?界面成像原理: 不论是以前的CRT还是现在的液晶显示器,成像原理是一致的;  CPU部分:逻辑的计算;计算好将要显示的内容转交给GPU;GPU部分:GPU开始渲染后将结果换到帧缓冲区,随后视频... 查看详情

为 OCMock 对象调用 isKindOfClass 时如何获取模拟值?

】为OCMock对象调用isKindOfClass时如何获取模拟值?【英文标题】:HowtogetthemockedvaluewhencallingisKindOfClassforanOCMockobject?【发布时间】:2013-03-0102:10:03【问题描述】:将OCMock对象传递给函数调用isKindOfClass的方法。但是对于单元测试,返... 查看详情

🔥springboot图文教程2—日志的使用「logback」「log4j」

有天上飞的概念,就要有落地的实现概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例文章结尾配套自测面试题,学完技术自我测试更扎实概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一... 查看详情