oc第七天:類的擴展

⼀、掌握NSDate的使⽤
NSDate是Cocoa中⽤於處理⽇期和時間的基礎類,封裝了某⼀給定的 時刻(含⽇期,時間,時區)。
使⽤+date⽅法獲取當前時間
例如:NSDate *nowDate = [NSDate date];
注意NSLog(@“%@”,nowDate);⽆論你是哪個時區的時間,打印時總 是打印對應的0時區時間。

NSTimeInterval(即double類型) ⽤以表⽰以秒爲單位的時間間隔
可以使⽤-initWithTimeIntervalSinceNow:⽅法傳⼊⼀個NSTimeInterval參數,創建⼀個 NSDate對象
例如:NSDate * tomorrowDate = [[NSDate alloc] initWithTimeIntervalSinceNow:24*60 * 60];
NSDate * yesterdayDate = [[NSDate alloc] initWithTimeIntervalSinceNow:-1 * 24*60 *60];
取兩個時間對象的間隔:NSTimeinterval = [tomorrowDate timeIntervalSinceDate:yesterdayDate];


⼆、掌握NSDateFormatter的使⽤
NSDateFormatter是iOS中的⽇期格式類,功能是實現NSString和NSDate的互 轉。
常⻅的時間格式化字符串有以下⼀些:y 年、 M 年中的⽉份 、d ⽉份中的天 數、 H ⼀天中的⼩時數(0-23)、 h am/pm 中的⼩時數(1-12)、m ⼩時中的分鐘 數 、s 分鐘中的秒數 等
指定⽇期格式: NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate轉NSString
⽇期轉化爲字符串: NSDateFormatter*formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSString *dateString=[formatter stringFromDate: [NSDate date]];
NSString轉NSDate
時間字符串轉化爲相對應的⽇期:NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString * dateStr = @”2008-08-08 20:08:08”;
NSDate * date = [formatter dateFromString:dateStr];





三、掌握Category的定義和使⽤
Category也叫分類或類⺫ 主要作⽤是爲 沒有源代碼 的類添加⽅法。
通過Category添加的⽅法會成爲原類的⼀部分。
從⽽達到擴展⼀ 個類的功能。
如何定義 Category
新建⽂件
選擇Objective-C Category模板
填寫類名和分類名
.h⽂件添加⽅法聲明
.m添加⽅法實現
Category與⼦類的區別



// 類目
//    //特點: 可以給看不到實現的系統類 添加方法 並且添加使用系統類的對象或者類名直接可以調用
//    //只能加方法不能加變量
//    //類目中添加的方法相當於直接添加到系統類中,是可以被繼承的

四、掌握Extension的定義和使⽤
Extension的主要作⽤是管理類的“私有”⽅法。
⾯向對象編程也叫⾯向接⼝編程。
在設計⼀個類的時候,有些⽅法需要對外公開(我們稱爲接⼝), 有些⽅法僅僅內部使⽤(⽐如:是某個⽅法的⼀個⼩步驟)。
Extension的功能是幫我們去管理這些內部使⽤的⽅法(“私有”⽅ 法)。
定義Extension
Extension的語法格式和Category很相似
相當於把Category的.h⽂件挪到了原始類的.m⽂件中
Extension針對的是⾃⼰的類,必須有源代碼的類
xxx.m⽂件
@interface xxx (ExtensionName)
//你的⽅法列表
@end
@implementation xxx
//⽅法的實現
@end
// 延展中可以寫 實例變量 方法
// 並且 是私有實例變量 方法聲明
// 延展特點
// 聲明是私有的方法和實例變量
// 一定要給有源代碼的類 創建延展 要不毫無意義
// 並且聲明的私有方法 需要區原類的.m文件中實現



五、掌握Protocol的定義和使⽤
Protocol(協議),是iOS開發中常⽤的技術。
協議是⼀套標準(⼀堆⽅法的聲明),只有.h⽂件。就像⼀張任 務清單(或便利貼),上⾯寫了⼀堆需要處理的事。清單交給誰, 誰就要去完成清單上規定的任務。
接受協議的對象實現協議中定義的⽅法。即:清單交給誰,誰就 要去完成清單上規定的任務。
協議中的⽅法默認是必須實現的,即@required。 關鍵字 @optional 修飾的⽅法是可選的,可實現 也可不實現。
遵守協議
遵守協議分兩步
1、在類的.h⽂件 ⽗類名後寫上<協議名>。
2、在.m⽂件中實現協議中的⽅法。
相當於給這個類添加了若干個⽅法。這個類的實例就可以調⽤這 些⽅法。
//使用協議代理的步驟
// 遵守協議
// 實現協議中的方法
// 添加代理爲實例變量
// 添加設置代理對象的方法(set方法)
// 讓代理幹活
// main創建對象設置代理對象




六、掌握delegate的使⽤
Protocol的核⼼使⽤場景是實現delegate設計模式。
delegate(代理)。通俗的講就是代理商,主要的任務是幫你完 成⼀些任務。



總結
NSDate是iOS中表⽰⽇期的類。
可以使⽤NSDateFormatter控制 NSString和NSDate的互轉
Category能爲沒有源代碼的類添加⽅法
Extension爲類管理私有⽅法
Protocol和delegate通常聯合使⽤,是iOS開發中特別常⽤。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章