OC_类的扩展(类目,延展)

类目

  • 分为两类,一种为系统已经写好的,按照功能对系统的类方法进行区分;第二种为我们创建的类目,一般是为了把一些系统的类进行功能的扩充
  • 类目从@interface开始,后面的是当前类的名字,类名后是分类的功能,到@end结束

    写一个系统的类方法:

NSString方法仅仅比较了字符串是否相同
NSString *str1 = @"2015-07-12 19:00:00";
NSString *str2 = @"2015-07-12 23:00:00";
if([str1 isEqualTwoDate:str2]){
    NSLog(@"月份相同");
}else{
    NSLog(@"月份不同");

现将NSString方法进行扩展,写一个类目,该方法实现的功能是比较两个日期的月份是否相同

1.首先建一个Objective- C category文件:
  生成了NSString+StringMethod.h文件 和 NSString +StringMethod.h文件

**2.NSString+StringMethod.h文件**

//输入两个日期,判断两个日期是否在同一个月
    -(BOOL)isEqualTwoDate:(NSString *)otherDate;

--------------------------------------------------

 **NSString +StringMethod.h文件**

    -(BOOL)isEqualTwoDate:(NSString *)otherDate{
        //这个方法需要两个参数,第一个参数就是方法的调用哪个这,谁调用了这个方法,那么在这个方法的内部,self就是使用这个方法的对象
    //先截取字符串
    NSString *month1 = [self substringWithRange:NSMakeRange(5, 2)];
    NSString *month2 =[otherDate substringWithRange:NSMakeRange(5, 2)];
    return [month1 isEqualToString:month2];
}

--------------------------------------------------

**main.m文件**
    注意:不要忘记引头文件
    #import"NSString+StringMethod.h"

     NSString *str = @"2015-07-12 19:00:00";
     NSString *str2 = @"2015-07-12 20:00:00";


    if([str isEqualTwoDate:str2]) {
        NSLog(@"月份相同");

    }else{
        NSLog(@"月份不同");
    }





练习:
1.写一个NSString类方法,将字符串拼接成如下形式:”2015-07-12 19:00 –20:00”

**NSString+StringMethod.h文件**
//拼接两个日期
    -(NSString *)appendTwoDate:(NSString *)otherDate;

--------------------------------------------------

**NSString +StringMethod.h文件**
    -(NSString *)appendTwoDate:(NSString *)otherDate{
    //先截取
     NSString *date1 = [self substringToIndex:16 ];
     NSLog(@"%@", date1);
     NSString *date2 = [otherDate substringWithRange:NSMakeRange(11,5)];
     NSString *str = [NSString stringWithFormat:@"%@-%@", date1,date2];
     return str;
}

--------------------------------------------------

**main.m文件**

     NSString *str = @"2015-07-12 19:00:00";
     NSString *str2 = @"2015-07-12 20:00:00";
NSString *date =  [str appendTwoDate:str2];
     NSLog(@"%@", date);




2.传过去一个字符串,返回一个时间的对象NSDate类型

**NSString+StringMethod.h文件**
-(NSDate *)stringToDate; //方法1
+(NSDate *)stringToDate:(NSString *)dateStr; //方法2

--------------------------------------------------

**NSString +StringMethod.h文件**
    -(NSDate *)stringToDate{
     NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
     [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
     return [formatter dateFromString:self];   
}


    +(NSDate *)stringToDate:(NSString *)dateStr{
    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    return [formatter dateFromString:dateStr];

}

--------------------------------------------------

**main.m文件**

     NSString *str = @"2015-07-12 19:00:00";
     NSDate *date = [str stringToDate];
     NSLog(@"%@", date);

     NSDate *date1 = [NSString stringToDate:str];
     NSLog(@"%@", date1);

结果如下:

延展

  • 写在自己的.m的文件中,把一些不想让外部调用的属性放在延展里,这样这条属性只能在类的内部使用,尽最大可能保护当前类的安全
  • 一般以@interface开头,然后写当前延展的类名,类名后会加一个(),到@end结束
  • 注意:
    类目一般都是给看不见的.m的系统文件进行扩展,延展一般是针对自己的类进行操作
例:
首先先建一个类文件:Student,再在类文件的.m文件里操作:

@interface Student()
@property(nonatomic, copy)NSString *name;
@end


@implementation Student
-(void)create{
    _name = @"你好!";
    NSLog(@"%@", _name);
}
@end
Nano-ESG数据资源库的构建基于2023年初至2024年秋季期间采集的逾84万条新闻文本,从中系统提炼出企业环境、社会及治理维度的信息。其构建流程首先依据特定术语在德语与英语新闻平台上检索,初步锁定与德国DAX 40成分股企业相关联的报道。随后借助嵌入技术对文本段落执行去重操作,以降低内容冗余。继而采用GLiNER这一跨语言零样本实体识别系统,排除与目标企业无关的文档。在此基础上,通过GPT-3.5与GPT-4o等大规模语言模型对文本进行双重筛选:一方面判定其与ESG议题的相关性,另一方面生成简明的内容概要。最终环节由GPT-4o模型完成,它对每篇文献进行ESG情感倾向(正面、中性或负面)的判定,并标注所涉及的ESG具体维度,从而形成具备时序特征的ESG情感与维度标注数据集。 该数据集适用于多企业可持续性研究,例如ESG情感趋势分析、ESG维度细分别研究,以及企业可持续性事件的时序演变追踪。研究者可利用数据集内提供的新闻摘要、情感标签与维度分,深入考察企业在不同时期的环境、社会及治理表现。此外,借助Bertopic等主题建模方法,能够从数据中识别出与企业相关的核心ESG议题,并观察这些议题随时间的演进轨迹。该资源以其开放获取特性与连续的时间覆盖,为探究企业可持续性表现的动态变化提供了系统化的数据基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值