OC -- Foundation 的基本方法

創(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;
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容