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
无界云图(开源在线图片编辑器源码)是由四川爱趣五科技推出的一款似可画、创客贴、图怪兽的在线图片编辑器。该项目采用了React Hooks、Typescript、Vite、Leaferjs等主流技术进行开发,旨在提供一个开箱即用的图片编辑解决方案。项目采用 MIT 协议,可免费商用。 无界云图提供了一系列强大的图片编辑功能,包括但不限于: 素材管理:支持用户上传、删除和批量管理素材。 操作便捷:提供右键菜单,支持撤销、重做、导出图层、删除、复制、剪切、锁定、上移一层、下移一层、置顶、置底等操作。 保存机制:支持定时保存,确保用户的工作不会丢失。 主题切换:提供黑白主题切换功能,满足不同用户的视觉偏好。 多语言支持:支持多种语言,方便全球用户使用。 快捷键操作:支持快捷键操作,提高工作效率。 产品特色 开箱即用:无界云图采用了先进的前端技术,用户无需进行复杂的配置即可直接使用。 免费商用:项目采用MIT协议,用户可以免费使用和商用,降低了使用成本。 技术文档齐全:提供了详细的技术文档,包括技术文档、插件开发文档和SDK使用文档,方便开发者进行二次开发和集成。 社区支持:提供了微信技术交流群,用户可以在群里进行技术交流和问题讨论。 环境要求 Node.js:需要安装Node.js环境,用于运行和打包项目。 Yarn:建议使用Yarn作为包管理工具,用于安装项目依赖。 安装使用 // 安装依赖 yarn install // 启动项目 yarn dev // 打包项目 yarn build 总结 无界云图是一款功能强大且易于使用的开源在线图片编辑器。它不仅提供了丰富的图片编辑功能,还支持免费商用,极大地降低了用户的使用成本。同时,详细的文档和活跃的社区支持也为开发者提供了便利的二次开发和集成条件。无论是个人用户还是企业用户,都可以通过无界云图轻
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值