您好,登錄后才能下訂單哦!
NSDate的使用
NSDate是Cocoa中用于處理日期和時間的基礎類,封裝類某一給定的時刻,具體的日期,時間和時區
使用+date方法獲取當前日期和時間
例如 :NSDate*nowDate = [NSDate date];
注意,,NSLog(@“%@”,nowDate); 無論你是哪個時區的時間,打印時間,打印時總是打印對應的0時區時間
NSTimeinterval
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的使用
1.
NSDateFormatter是iOS中的日期格式類,主要的功能是實現 代表日期的NSString和
SDate的互轉,提供了系統預置的字符串格式,還允許用戶自定義字符串格式。 我們可以設置時區、月的名稱、紀元的符號、local、calender、AM/PM、weekday的符號
常見的時間格式化字符串有以下一些: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"];
2.
NSDateFormatter可以將日期轉化為相對應的字符串,同樣可以將字串轉化為相對應的日期。
日期轉化為字符串: NSDateFormatter*formatter =NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSString *dateString=[formatter stringFromDate: [NSDate date]];
3.
時間字符串轉化為相對應的日期: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的聲明
NSString+SayHi.h文件
@interface NSString (SayHi)
- (void)hi;
@end
Category的實現
NSString+SayHi.m文件
#import “NSString+SayHi.h”
@implementation NSString(SayHi)
- (void)hi{
NSLog(@”這是通過category為NSString添加的hi方法”);
}
@end
Category與子類的區別
Extension
Extension的主要作用是為類添加“私有”方法。
面向對象編程的另外一個名字叫面向接口編程。
我們在設計一個類的時候,有些方法需要對外公開(我們稱為接口),有些方法可能僅僅內部使用(比如:是某個方法的一個小步驟)。
Extension的功能是幫我們去管理這些內部使用的方法(“私有”方 法)。
定義Extension
Extension的語法格式和Category很相似
相當于把Category的.h文件挪到了原始類的.m文件中
Extension針對的是的類,必須有源代碼的類
定義Extension
xxx.m文件
@interface xxx (ExtensionName)
//你的方法列表
@end
Extension的實現
@implementation xxx
//方法的實現
@end
Category和Extension的區別
Protocol
Protocol又名協議,是iOS開發中常用的技術。
協議是一套標準(一堆方法的聲明),只有.h文件。
接受協議的對象實現協議中定義的方法
Protocol
協議就像一張任務清單(或便利貼),上面寫了一堆需要處理的事。清單交給誰,誰就要去完成清單上規定的任務。
協議定義好之后,需要有類去遵守這個協議,實現協議里面的方法。
遵守協議即在.h文件的父類名后寫上<協議名]]>。實現協議里的方法即在.m文件中實現協議中的方法。相當于給這個類添加了若干個
方法。這個類的實例就可以調用這些方法。
定義Protocol
@protocol開始,以@end結束,例如:
@protocol MarryProtocol <NSObject>
- (void)makeMoney;
@optional //可選的協議,
- (void)washcloth;
- (void)cook;
@end
協議中的方法默認是必須實現的,即@required關鍵字 @optional 修飾的方法是可選的,可實現也可不實現。
如何遵守協議
#import “MarryProtocol”
#這里要引入協議的頭文件
@interface Boy : NSObject <MarryProtocl>
...
@end
@implementation Boy
//協議中方法的實現
@end
delegate設計模式
Protocol的核心使用場景是實現delegate設計模式。
delegate音譯代理。通俗的講就是代理商,主要的任務是幫你完成一些任務。
比如:保姆就可以認為是delegate,主要的任務是幫你帶孩子、做飯、洗衣服等。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。