//类目
//系统已经写好的类目:按照功能对系统的类方法进行区分
//类目从@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(@”买买买”);
}