OC10_类的扩展

来源:互联网 发布:网络营销软件自动发帖 编辑:程序博客网 时间:2024/05/20 12:23
1.NSDate(日期) NSData(数据)(1).获取当前时间.NSDate *date = [NSDate date];// NSLog输出日期时,会打印相对应的零时区的时间NSLog(@"%@", date);

打印结果

(2).获取任意时间.// NSTimeInterval 时间间隔 double类型.// NSTimeInterval 正 未来时间.// NSTimeInterval 负 过去时间.NSDate *anyDate = [NSDate dateWithTimeIntervalSinceNow:8 * 60 * 60];   // 打印的是零时区的时间.NSLog(@"%@", anyDate);

打印结果

(3).获取时间间隔NSTimeInterval time = [date timeIntervalSinceDate:anyDate];NSLog(@"%.2f", time / 60 / 60);

打印结果

(4).日期格式化转换器.// NSDateFormatterNSDateFormatter *f = [[[NSDateFormatter alloc] init] autorelease];            // y  年份            // M  月份            // d  日期            // H  小时            // m  分钟            // s  秒            // a  AM, PM            // z  时区            // G  AD(公元)/BC(公元前)            // E  星期            f.dateFormat = @"yyyy-MM-dd HH:mm:ss a z Gr EEEE";// date -> stringNSString *dateStr = [f stringFromDate:date];NSLog(@"%@", dateStr);

结果

// string -> dateNSString *string = @"2015年9月10日 10时22分10秒";f.dateFormat = @"yyyy年MM月dd日 HH时mm分ss秒";   // HH必须大写,有的版本只有大写好使.NSDate *newDate = [f dateFromString:string];NSLog(@"%@", newDate);

结果

2.类目(1).Category 类目/分类/类别作用:给系统的类额外添加方法(包括一般类和系统类).main.mNSMutableArray *array= [NSMutableArray array];[array addObject:@"a"];[array addObject:@"b"];[array addObject:@"c"];[array addObject:@"d"];for (NSInteger i = 0; i < array.count - 1; i++) {    for (NSInteger j = 0; j < array.count - 1 - i; j++) {        if ([array[j] compareDescending:array[j + 1]] == 1 ) {            [array exchangeObjectAtIndex:j withObjectAtIndex:j + 1];        }    }}NSLog(@"%@", array);

遍历结果

新建一个Person类Person.h// 接口#import <Foundation/Foundation.h>@interface Person : NSObject@property(nonatomic, retain)NSString *name;- (void)sayHi;@end// 类目     类名    类目名   // 类目的声明.@interface Person (AAA)- (void)printPerson;@endPerson.m#import "Person.h"@implementation Person(2).类目的实现@implementation Person (AAA)- (void)printPerson {    // 类目中可以调用类的属性以及成员变量,还有方法    NSLog(@"%@", self.name);}@end类目,通常需要创建一对文件 .h.m 用于给系统的类添加方法.延展,通常直接写在.m中新建一个类目文件,NSString + CoCo

类目文件

NSString + CoCo.h#import <Foundation/Foundation.h>// 类目// 文件名: 类型名 + 类目名// 类目的方法相当于写在当前类中.// 当类目要重写类方法时 只会执行类目中的方法.// 类目中的方法优先级比较高.@interface NSString (CoCo)// 字符串降序的方法- (NSComparisonResult)compareDescending:(NSString *)string;@endNSString + CoCo.m#import "NSString+CoCo.h"@implementation NSString (CoCo)- (NSComparisonResult)compareDescending:(NSString *)string {    // 降序方法    return -[self compare:string];}@end3.延展 (1).Extension 类的延展.作用:管理私有方法和属性.main.mPerson *person = [[Person alloc] init];person.name = @"heihei";私有属性 外部不能访问 只能在类内部使用;[person sayHi];新建一个Person类.person.h#import <Foundation/Foundation.h>@interface Person : NSObject@property(nonatomic, retain)NSString *name;@endperson.m#import "Person.h"// 延展    私有声明@interface Person ()@property(nonatomic, retain) NSString *sex;   // 私有属性@property(nonatomic, assign) NSUInteger age;@property(nonatomic, retain) NSString *hobby;// 3.私有方法声明.- (void)Hello;@end@implementation Person// 私有方法实现.- (void)Hello {    NSLog(@"你好!~");}- (void)sayHi {    NSLog(@"卡卡");    // 在类的内部区调用私有方法.    [self Hello];}@end
0 0
原创粉丝点击