OC10_类的扩展
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).日期格式化轉換器.
// NSDateFormatter
NSDateFormatter *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 -> string
NSString *dateStr = [f stringFromDate:date];
NSLog(@"%@", dateStr);
// string -> date
NSString *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.m
Person *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
總結
- 上一篇: 相机光学(二十)——三原色与白平衡
- 下一篇: 小程序获取手机号验证码