类的扩展
来源:互联网 发布:上海美猴网络面试 编辑:程序博客网 时间:2024/05/16 15:52
//类目
//系统已经写好的类目:按照功能对系统的类方法进行区分
//类目从@interface 开始,后面是当前类的名,类名后是分类的功能,到@end结束
//我们创建的类目,一般是为了把一些系统的类进行功能的扩充
NSString *str1 = @"2015-07-24 19:00:00";NSString *str1 = @"2015-07-24 21:00:00";//创建类//判断输入日期是否在同一个月份//首先在 .h 文件中定义 -(BOOL)isEqualTwoDate:(NSString *)otherDate; //在.m 文件中 -(BOOL)isEqualTwoDate:(NSString *)otherDate { NSString *str1 = [self substringWithRange:NSMakeRange(5,2)]; NSString *str2 = [otherDate substringWithRange:NSMakeRange(5,2)]; //或者写成 if ([str1 isEqualToString:str2]){ // return YES; // } return [str1 isEqualToString:str2];}//在main中调用 NSString *str = @"2015-07-24 19:00:00"; NSString *str2 = @"2015-07-24 20:02:00";if ( [str isEqualTwoDate:str2] ){ NSLog(@"%@",@"月份相同");}else{ NSLog(@"%@",@"月份不相同");}
//拼接两个日期// .h文件 -(NSString * )appendTwoDate:(NSString *)otherDate; //.m文件 -(NSString * )appendTwoDate:(NSString *)otherDate { NSString *time = [NSString stringWithFormat:@%@-%@",[self substringWithRange:NSMakeRange(0,16)],[otherDate substringWithRange:NSMakeRange:(11,5)]]; return time; }//.m文件NSString *time1 = @"2015-07-24 19:00:00";NSString *time2 = @"2015-07-24 24:00:00";NSLog(@"%@",[time1 appendTwoDate:time2]);
//给定两个事假,判断时间是否在这两个时间区间内//.h文件 -(BOOL)isInTimeZone:(NSString *)beginTime end:(NSString *)endTime; //.m文件 -(BOOL)isInTimeZone:(NSString *)beginTime end:(NSString *)endTime { NSString *myDate = [self substringWithRange:NSMakeRange(8,2)]; NSString *beginDate = [beginDate substringWithRange:NSMakeRange(8,2)]; NSString *endDate = [endDate substringWithRange:NSMakeRange(8,2)]; if ( [myDate compare:beginDate] == 1 && [myDate compare:endDate]==-1 ) { return 1; } return 0; } //main文件NSString *time0 = @"2015-07-19 12:00:00"NSString *time1 = @"2015-07-10 19:00:00";NSString *time2 = @"2015-07-24 24:00:00";NSLog(@"%d",[ time0 isInTimeZone: time1 end:time2])
//传过去一个字符串,返回一个时间的对象NSDate类型//方法一:用方法的方式 //.h文件 -(NSDate *)stringToDate; //,m文件 -(NSDate *)stringToDate{ //设置格式 NSDateFormatter *formatter = [[ NSDateFormatter alloc ]init]; [ fomatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSDate *date1 = [ formatter dateFromString:self]; return date1; } //main文件 NSString *time = @"2015-07-12 19:00:00"; NSLog (@"%@",[time stringToDate]);
延展
为自己写的类添加类目.
延展以@interface开头,然后写当前延展的类名,类名后加一个(),到@end结束.
一般延展会写在自己写的类的.m文件中,把一些不想让外部调用的属性放在延展里,这样这条属性就只能在类的内部使用,外部使用不了,尽最大可能保护当前类的安全.
类目一般都是看不见.m的系统文件进行扩展,延展一般是针对自己的类进行操作.
类的.m文件:
// 这其中的name属性和create方法只能在自己类中使用.
@interface Student ()
@property(nonatomic, copy)NSString *name;
@end
@implementation Student
- (void)create{
_name = @”你好”;
NSLog(@”%@”,_name);
}
@end
协议
1.在类的.m中声明协议@protocol,协议名为 类名+Delegate,然后写协议内容.(@required必须实行 @optional选择实行);
//1.声明一份协议
//@protocol 协议关键词
@protocol Marry
//协议的内容
//协议方法的声明
//@required 是必须实现的方法,默认是必须实现的方法
//@optional 是可选择执行的方法
@required
-(void)makeMoney;
@optional
-(void)cook;
@end
@interface Girl : NSObject
//设置代理人的属性
@property(nonatomic,assign)id
delegate;
//两个人结婚后协议才正式的生效
-(void)getMarry;
//3.让搭理人去执行协议的方法
@implementation Girl
-(void)getMarry{
[self.delegate makeMoney];
}
//4.引头文件写完后,boy需要签订协议
@interface Boy : NSObject
//5.在main中设置代理人
//创建两个人
Boy *yadang = [[Boy alloc]init];
Girl *xiawa = [[Girl alloc]init];
xiawa.delegate = yadang;
//通过调用结婚的方法,来执行内部的协议方法
[xiawa getMarry];
//6.定义方法
-(void)makeMoney
{
NSLog(@”买买买”);
}
- UIView的类扩展,扩展CGRect
- Math类的扩展
- CxSkinButton类的扩展
- 类的扩展
- 类的扩展
- OC 类的扩展
- 07 类的扩展
- OC----类的扩展
- 类的扩展
- UIColor类的扩展
- UI类的扩展
- 类的扩展
- 类的扩展
- C#类的扩展
- 类的扩展
- 类的扩展
- 类的扩展
- 类的扩展
- Code Forces 55 D. Beautiful numbers(数位DP)
- 特别篇-SetWindowExtEx,SetViewportExtEx解析
- MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL
- Unity3d如何读写XML文件
- XUtils数据库的简单使用;
- 类的扩展
- Android开发时经常用的LogUtil
- uva 11045 My T-shirt suits me (二分图匹配 最大流)
- ios下inhouse发布相关代码
- [黑马程序员](第10-15天)集合类(下)
- QueryPerformanceFrequency()
- 电梯调度算法问题
- Springmvc 默认首页的问题
- android studio 运行代码时device不能识别genymotion设备