iOS OC07.2_类的扩展

类目

//1.系统已经写好的类目:按照功能对系统的类方法进行区分
    //leimucong@interface开始,后面是当前类的名字,类名后面是分类的功能,到@end结束
    //2.我们创建的类目,一般是为了把系统的类进行功能扩充
//    NSString *str=@"2015-07-12 10:00:00";
//    NSString *str2=@"2015-07-12 09:00:00";
////    [str sayHi];
//    
////    BOOL isTrue=[str2 isEqualTwoDate:str];
//    
//    
//    if ([str2 isEqualToString:str]) {
//        NSLog(@"月份相同");
//    }else{
//        NSLog(@"月份不同");
//    }
//    
//    
//    NSString *newTime=[str appendTwoDate: str2];
//    NSLog(@"%@",newTime);
//    
//    NSDate *date=[str stringToDate];
//    NSLog(@"%@",date);
//    
//    NSDate *date1=[NSString stringToDate:str];
//    NSLog(@"%@",date1);

NSString+StringMethod.h

//
//  NSString+StringMethod.h
//  OC07_类的扩展
//
//  Created by dllo on 15/7/24.
//  Copyright (c) 2015年 zhozhicheng. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSString (StringMethod)
-(void)sayHi;

//输入两个日期,判断两个日期是否在同一个月
-(BOOL)isEqualTwoDate:(NSString *)otherDate;
//拼接日期
-(NSString *)appendTwoDate:(NSString *)otherDate;
//给定两个时间,判断时间是否在这两个区间内

-(BOOL)isInTimeZone:(NSString *)beginTime
                end:(NSString *)endTime;
-(NSDate *)stringToDate;



+(NSDate *)stringToDate:(NSString *)dateStr;


@end

“NSString+StringMethod.h”

//
//  NSString+StringMethod.m
//  OC07_类的扩展
//
//  Created by dllo on 15/7/24.
//  Copyright (c) 2015年 zhozhicheng. All rights reserved.
//

#import "NSString+StringMethod.h"

@implementation NSString (StringMethod)
-(void)sayHi
{
    NSLog(@"你好");
}

-(BOOL)isEqualTwoDate:(NSString *)otherDate{
    //这个方法需要两个参数,第一个参数就是方法的调用者,谁调用了这个方法,那么在这个方法的内部,self就是使用方法的那个对象
//    NSLog(@"%@",self);
    //进行截取
    NSRange range={5,2};
    NSString *str1=[self substringWithRange:range];
    NSString *str2= [otherDate substringWithRange:range];
    return [str1 isEqualToString:str2];

}

-(NSString *)appendTwoDate:(NSString *)otherDate{
    NSString *endTime=[otherDate substringFromIndex:10];
    return [self stringByAppendingString:endTime];
}

-(BOOL)isInTimeZone:(NSString *)beginTime
                end:(NSString *)endTime{
    return YES;
}
    //传过去一个字符串,返回一个时间的对象NSDate类型
-(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];


}
@end

延展

Girl.h(1)

//
//  Girl.h
//  OC07_类的扩展
//
//  Created by dllo on 15/7/24.
//  Copyright (c) 2015年 zhozhicheng. All rights reserved.
//

#import <Foundation/Foundation.h>

// 1.声明一份协议
// @protocol 协议的关键词
@protocol Marry <NSObject>
// 协议的内容
// 协议方法的声明
// required是必须实现的方法,默认是必须实现的方法
// optional是可选择执行的方法
@required
-(void)makeMoney;


@optional
-(void)cook;



@end



@interface Girl : NSObject
// 2.设置代理人的属性
@property(nonatomic,assign)id<Marry>delegate;

// 两个人结婚之后,协议才正式生效
-(void)getMarry;



@end

Girl.m(2)(3)

//
//  Girl.m
//  OC07_类的扩展
//
//  Created by dllo on 15/7/24.
//  Copyright (c) 2015年 zhozhicheng. All rights reserved.
//

#import "Girl.h"

@implementation Girl

-(void)getMarry {
    // 3.让代理人去执行协议里的方法
    [self.delegate makeMoney];
}


@end

Boy.h(4)

//
//  Boy.h
//  OC07_类的扩展
//
//  Created by dllo on 15/7/24.
//  Copyright (c) 2015年 zhozhicheng. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Girl.h"

// 4.引完头文件之后,BOY需要签订协议


@interface Boy : NSObject<Marry>

@end

main.m(5)

//创建两个小人
//    Boy *yadang=[[Boy alloc] init];
//    Girl *xiawa=[[Girl alloc] init];
//    //5.设置代理人
//    xiawa.delegate = yadang;
//    // 通过调用结婚的方法,来执行内部协议的方法
//    [xiawa getMarry];

Boy.m(6)

//
//  Boy.m
//  OC07_类的扩展
//
//  Created by dllo on 15/7/24.
//  Copyright (c) 2015年 zhozhicheng. All rights reserved.
//

#import "Boy.h"

@implementation Boy

//6.实现协议方法makeMarry
-(void)makeMoney{
    NSLog(@"买买买");
}

@end

设置新代理人

Man.h

//
//  Man.h
//  OC07_类的扩展
//
//  Created by dllo on 15/7/24.
//  Copyright (c) 2015年 zhozhicheng. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Girl.h"
// 签订协议
@interface Man : NSObject<Marry>

@end

Man.m

//
//  Man.m
//  OC07_类的扩展
//
//  Created by dllo on 15/7/24.
//  Copyright (c) 2015年 zhozhicheng. All rights reserved.
//

#import "Man.h"

@implementation Man

-(void)makeMoney{
    NSLog(@"花花花");
}
@end

main.m

Man *wangliqian=[[Man alloc] init];
//    //设置代理人
//    xiawa.delegate=wangliqian;
//    [xiawa getMarry];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值