首页 > 其他分享 >OC之【NSObject使用】

OC之【NSObject使用】

时间:2022-12-09 15:01:26浏览次数:41  
标签:stu void OC Person test Student 使用 NSObject import

main.m文件
#import <Foundation/Foundation.h>
#import "Student.h"
#import "Person.h"

常用方法
void
Student *stu = [[[Studentalloc] init]autorelease];

// isKindOfClass判断对象是否属于某个类或者 子类
if ( [stu isKindOfClass:[Personclass]] ) {
// NSLog(@"stu属于Person或者继承自Person");
}

// isMemberOfClass判断对象是否属于某个类(不包括子类)
BOOL result = [stu isMemberOfClass:[Student class]];
// NSLog(@"%i", result);


// 直接调用
// [stu test];

// 间接调用
performSelector:@selector(test)];
// [stu performSelector:@selector(test2:) withObject:@"abc"];
// 延迟2秒后调用test2:方法
[stu performSelector:@selector(test2:)withObject:@"abc"afterDelay:2];
}

void
// 类的反射
NSString *str = @"Person";
Class class = NSClassFromString(str);

Person *person = [[class alloc] init];
NSLog(@"%@", person);


// Class变成字符串
NSString *name = NSStringFromClass([Personclass]);


// 方法的反射
NSString *method = @"test";
SEL selector = NSSelectorFromString(method);
performSelector:selector];

// 将SEL转换为字符串
NSString *selectorName = NSStringFromSelector(selector);


release];
}

int main(int argc,const char
{

@autoreleasepool {
reflect();
}
return 0;
}

Person.h文件
#import <Foundation/Foundation.h>

@interface Person :NSObject
- (void)test;
@end


Person.m文件
#import "Person.h"
Person
- (void)test {
NSLog(@"调用了Person的test方法");
}
@end


Student.h文件
#import "Person.h"
@interface Student :Person

- (void)test;

- (void)test2:(NSString

@end


Student.m文件
#import "Student.h"
Student
- (void)test {
NSLog(@"调用了test方法");
}

- (void)test2:(NSString
NSLog(@"调用了test2方法:%@", a);
}

@end

标签:stu,void,OC,Person,test,Student,使用,NSObject,import
From: https://blog.51cto.com/u_15907570/5925323

相关文章

  • OC之【@property的用法】
    1.这里的retain代表:在set方法中,release旧值,retain新值(nonatomic,retain)Book*book;(retain)Card*card;代表只生成get方法的声明默认是readwrite,同时生成get和set......
  • OC之【objective-c中结构体】
    #import<Foundation/Foundation.h>void//定义了Date这种结构体类型structintintint};//定义结构体变量structDated={2013,4,5};day=6;}voi......
  • Java使用Steam流对数组进行排序
    原文地址:Java使用Steam流对数组进行排序-Stars-One的杂货小窝简单记下笔记,不是啥难的东西sorted()方法里传了一个比较器的接口Filefile=newFile("D:\\temp\\db_ba......
  • vscode使用chatGPT
    vscode使用chatGPT一、下载chatPGT在拓展中找到chatGPT,我这里下载的是中文版二、使用1.使用快捷键ctrl+shift+p进行查找chatGPT2.点击请输入问题3.输入你的问题,......
  • C# OpenProtocol 开放以太网协议 读写数据 订阅数据
    主要使用的软件是HslCommunication关于这个软件的本身,详细可以参考下面的地址:github地址:https://github.com/dathlin/HslCommunication官网:http://www.hslcommunicatio......
  • 使用TUniSQLMonitor监视SQL语句执行的耗时
    //代码来自官方论坛typeTUniSqlMonitorEx=class(TUniSqlMonitor)privateFExecuteDuration:Cardinal;FFinalEvent:Boolean;protectedprocedu......
  • 如何正确使用Airtest报告插件?报告小tips上线
    1.前言在使用Airtest做自动化测试时,默认生成的报告,其实是airtest的专属报告。它对于poco语句(控件测试场景)、airtest-selenium语句(web测试场景)的支持不够完善,因此我们需......
  • 2022第三届云原生编程挑战赛--Serverless VSCode WebIDE使用体验
    2022第三届云原生编程挑战赛--ServerlessVSCodeWebIDE使用体验​​活动背景​​​​赛题说明​​​​ServerlessVSCodeWebIDE体验​​​​体验入口​​​​什么是Server......
  • 关于 SQL navigation function 的一点使用记录
    来自于SQL2011对窗口函数的增强,新添加了叫导航函数的类别,进一步丰富了窗口的计算能力。这将一次记录几个比较常用的导航函数他们包含,FIRST_VALUELAST_VALUENTH_VALU......
  • 枚举进阶使用
    ##......