031.isKind 判断指针的实际类型
来源:互联网 发布:sql自定义函数 编辑:程序博客网 时间:2024/04/28 10:16
--------------- FKBase.h ---------------
#import<Foundation/Foundation.h>
@interfaceFKBase : NSObject
- (void) base;
- (void) test;
- (void) base;
- (void) test;
@end
--------------- FKBase.m ---------------
#import"FKBase.h"
@implementationFKBase
- (void) base
{
- (void) base
{
NSLog(@"父类的普通base方法");
}
- (void) test
{
- (void) test
{
NSLog(@"父类的将被覆盖的test方法");
}
@end
--------------- FKSubclass.h ---------------
#import<Foundation/Foundation.h>
#import"FKBase.h"
@interfaceFKSubclass : FKBase
- (void) sub;
- (void) sub;
@end
--------------- FKSubclass.m ---------------
#import"FKSubclass.h"
@implementationFKSubclass
- (void) test
{
- (void) test
{
NSLog(@"子类的覆盖父类的test方法");
}
- (void) sub
{
- (void) sub
{
NSLog(@"子类的sub方法");
}
@end
--------------- main.m ---------------
#import<Foundation/Foundation.h>
#import"FKSubclass.h"
intmain()
{
//声明hello时使用NSObject类,则hello的编译时类型是NSObject,
// NSObject是所有类的父类, 但hello变量的实际类型是NSString
NSObject* hello = @"Hello";
//使用isKindOfClass判断该变量所指的对象是否为指定类、及其子类的实例
NSLog(@"字符串是否是NSObject类的实例:%d", ([hello isKindOfClass:[NSObject class]]));
NSLog(@"字符串是否是NSString类的实例:%d", ([hello isKindOfClass:[NSString class]]));
NSLog(@"字符串是否是NSDate类的实例:%d", ([hello isKindOfClass:[NSDate class]]));
NSString* a = @"Hello";
NSLog(@"a是否是NSDate类的实例:%d", ([a isKindOfClass:[NSDate class]]));
{
//声明hello时使用NSObject类,则hello的编译时类型是NSObject,
// NSObject是所有类的父类, 但hello变量的实际类型是NSString
NSObject* hello = @"Hello";
//使用isKindOfClass判断该变量所指的对象是否为指定类、及其子类的实例
NSLog(@"字符串是否是NSObject类的实例:%d", ([hello isKindOfClass:[NSObject class]]));
NSLog(@"字符串是否是NSString类的实例:%d", ([hello isKindOfClass:[NSString class]]));
NSLog(@"字符串是否是NSDate类的实例:%d", ([hello isKindOfClass:[NSDate class]]));
NSString* a = @"Hello";
NSLog(@"a是否是NSDate类的实例:%d", ([a isKindOfClass:[NSDate class]]));
}
一、编写本节代码的具体步骤:
1.可仿照第二章001节的代码编写步骤,不同的是,本节代码要创建两个类。
二、本节代码涉及到的知识点:
1.-(BOOL)isKindOfClass:clazz: 判断该对象是否为clazz或其子类的实例。
2.-(BOOL)isSubclassOfClass:clazz: 判断该对象是否为clazz的子类的实例。
3.上面两个方法可以使用任何对象作为调用者,接着向该方法传入任意类,
该方法将会返回一个BOOL类型的值,用于表明该变量实际指向对象的类型。
4.在执行强制类型转换之前,先判断一下前一个对象是否是该类的实例,是否可以成功转换。
0 0
- 031.isKind 判断指针的实际类型
- 031.isKind 判断指针的实际类型
- 判断指针变量的实际类型
- 学习笔记(objective-c)-判断指针变量的实际类型
- C++判断指针的类型
- 指针的指针的实际使用例子
- typeid用于返回指针或引用所指对象的实际类型。
- php 读取文件头部两个字节 判断文件的实际类型
- php 读取文件头部两个字节 判断文件的实际类型
- php 读取文件头部两个字节 判断文件的实际类型
- 获取传递过来指针的实际大小
- 谈函数指针的实际应用
- C#匿名类型的的实际应用
- LPSTR, LPCSTR,LPTSTR, .....实际的变量类型
- 获取运行时泛型的实际类型
- java获取泛型的实际类型
- 强制声明泛型的实际类型
- clock_t实际类型的查找流程
- 027.inherit 类的继承
- 028.Override 方法的重写(方法覆盖)
- 029.Polymorphism 多态
- 030.(type*)variable 指针的强制类型转换
- 单调栈经典模板(Codeforces Round #305 (Div. 2), problem: (D) Mike and Feet)
- 031.isKind 判断指针的实际类型
- 032.NSValue NSNumber 包装类
- 033.description 自我描述的方法
- 034.== 两个变量是否相等
- 035.isEqual 两个变量是否相等
- 036.isEqual 不合理的重写
- 037.isEqual 合理的重写
- #leetcode#Simplify Path
- JQuery.validate.js实现Ajax验证