創(chuàng)建父類ClassA,子類ClassB繼承ClassA
ClassA.h
#import <Foundation/Foundation.h>
@interface ClassA : NSObject
- (void)method:(int)count;
@end
ClassA.m
#import "ClassA.h"
@implementation ClassA
- (void)method:(int)count
{
NSLog(@"%d",count);
}
@end
main.m
#import <Foundation/Foundation.h>
#import "ClassB.h"
#import "ClassA.h"
int main(int argc, const char *argv[])
{
@autoreleasepool
{
/*_______________________________對象與類的關系________________________*/
//構建類名
Class className = NSClassFromString(@"ClassA");
Class className2 = [ClassA class];
//1.查看某個對象是否是某個類的對象
ClassB *b = [[ClassB alloc]init];
BOOL isYes1 = [b isMemberOfClass:[ClassB class]];
BOOL isYes2 = [b isMemberOfClass:[ClassA class]];
NSLog(@"b %@ ClassB 的對象",isYes1?@"是":@"不是");
NSLog(@"b %@ ClassA的對象",isYes2?@"是":@"不是");
//查看某個對象是否是某個類的派生對象 -> b是否是B的或B的父類的對象
BOOL isYes3 = [b isKindOfClass:[ClassB class]];
BOOL isYes4 = [b isKindOfClass:[ClassA class]];
NSLog(@"b %@ ClassB的派生對象",isYes3?@"是":@"不是");
NSLog(@"b %@ ClassA的派生對象",isYes4?@"是":@"不是");
/*+____________對象間的關系____________________________________________*/
NSObject *objc1 = [[NSObject alloc]init];
NSObject *objc2 = [[NSObject alloc]init];
NSLog(@"%p %p",string1,string2);
BOOL isEqualString = [string1 isEqualTostring:string2];
NSLog(@"兩個字符串內容%@",isEqualString?@"相同":@"不同");
/*_______________________對象與方法____________________________________*/
[b method:10];
//判斷某個對象是否響應某方法 --> 對象是否能調用該方法
//1.
SEL sel = @selector(method:);
BOOL isTrue = [b respondsToSelector:sel];
//2.
BOOL isTrue1 = [b respondsToSelector:@selector(method:)];
NSLog(@"對象 b %@ 方法 method",isTrue1?@"響應":@"不響應");
}
return 0;
}