码迷,mamicode.com
首页 > 移动开发 > 详细

iOS OC07.2_类的扩展

时间:2015-07-25 15:17:58      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:oc   方法   ios   延展   

类目

//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];

版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS OC07.2_类的扩展

标签:oc   方法   ios   延展   

原文地址:http://blog.csdn.net/cheng_xiansheng/article/details/47056363

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!