049. isKindOfClass 检查继承关系
来源:互联网 发布:贪心算法解决tsp问题 编辑:程序博客网 时间:2024/05/21 04:16
--------------- FKEatable.h ---------------
#import <Foundation/Foundation.h>
@protocol FKEatable
@optional
- (void) taste;
@optional
- (void) taste;
@end
--------------- FKApple.h ---------------
#import "FKEatable.h"
@interface FKApple : NSObject <FKEatable>
@interface FKApple : NSObject <FKEatable>
@end
--------------- FKApple.m ---------------
#import "FKApple.h"
@implementation FKApple
@implementation FKApple
@end
--------------- main.m ---------------
#import <Foundation/Foundation.h>
#import "FKApple.h"
int main()
{
FKApple* app = [[FKApple alloc] init];
NSLog(@"%@" , [app class]);
NSLog(@"app是否为FKApple的实例:%d", [app isMemberOfClass: FKApple.class]);
NSLog(@"app是否为NSObject的实例:%d",[app isMemberOfClass: NSObject.class]);
NSLog(@"app是否为FKApple及其子类的实例:%d",[app isKindOfClass: FKApple.class]);
NSLog(@"app是否为NSObject及其子类的实例:%d",[app isKindOfClass: NSObject.class]);
NSLog(@"app是否实现FKEatable协议:%d",[app conformsToProtocol: @protocol(FKEatable)]);
{
FKApple* app = [[FKApple alloc] init];
NSLog(@"%@" , [app class]);
NSLog(@"app是否为FKApple的实例:%d", [app isMemberOfClass: FKApple.class]);
NSLog(@"app是否为NSObject的实例:%d",[app isMemberOfClass: NSObject.class]);
NSLog(@"app是否为FKApple及其子类的实例:%d",[app isKindOfClass: FKApple.class]);
NSLog(@"app是否为NSObject及其子类的实例:%d",[app isKindOfClass: NSObject.class]);
NSLog(@"app是否实现FKEatable协议:%d",[app conformsToProtocol: @protocol(FKEatable)]);
}
一、本节代码涉及到的知识点:
1.NSObject提供了以下三个方法可以判断类的继承关系:
① isKindOfClass 需要传入一个Class参数,用于判断该对象是否是该类的实例或该类子类的实例。
② isMemberOfClass 需要传入一个Class参数,用于判断该对象是否是该类的实例。
③ conformsToProtocol 需要传入一个Protocol参数,用于检查该对象是否实现了指定协议类的方法。
0 0
- 049. isKindOfClass 检查继承关系
- 049. isKindOfClass 检查继承关系
- iOS检查继承关系
- 编译期检查class是否有继承关系
- 编译期检查class是否有继承关系
- 继承关系
- 继承关系
- 继承关系
- 继承关系
- 学习C++设计新思维(泛型编程与设计模式之应用).pdf之继承关系检查
- C++继承虚表检查
- 静态类型检查与继承
- 继承中的语法检查器
- isMemberOfClass/isKindOfClass
- 关于-isKindOfClass
- NSClassFromString isKindOfClass
- isKindOfClass、isMemberOfClass
- Hibernate的继承关系
- 8、指针
- 050.performSelector 动态调用方法
- 今天提取了VS2015的编译器 用在 VS2010, 感觉真不错
- 导出 poi 批注
- 函数式编程--lambda表达式对比匿名内部类
- 049. isKindOfClass 检查继承关系
- 自学Unity之做一个MOBA游戏2——镜头移动
- 如何避免adtbundle新建项目总是产生一个appcompat_v7和fragment_main.xml
- Android基础入门教程——8.3.8 Paint API之—— Xfermode与PorterDuff详解(五)
- git安装教程和使用方法记录
- 滴水鲸
- 软考-分治算法
- 【随机过程】随机过程之泊松过程的直观理解
- 比较经典的Jquery代码