中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Objective -C NSDate、Category   、Extension、Protocol

發布時間:2020-07-13 04:32:09 來源:網絡 閱讀:629 作者:Im劉亞芳 欄目:開發技術

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.

  • NSDateFormatteriOS中的日期格式類,主要的功能是實現 代表日期的NSString

  • SDate的互轉,提供了系統預置的字符串格式,還允許用戶自定義字符串格式。 我們可以設置時區、月的名稱、紀元的符號、localcalenderAM/PMweekday的符號

  • 常見的時間格式化字符串有以下一些:年、 年中的月份 、月份中的天數、 

  • 中的小時數(0-23)、 h am/pm 中的小時數(1-12)小時中的分鐘數 、分鐘中的秒數

  • 指定日期格式: 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(@這是通過categoryNSString添加的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,主要的任務是幫你帶孩子、做飯、洗衣服等。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蓬安县| 抚顺县| 聊城市| 游戏| 庄浪县| 玛多县| 鹤壁市| 阿城市| 开原市| 蓬溪县| 确山县| 宝鸡市| 鄂托克旗| 通渭县| 岳普湖县| 托克托县| 巧家县| 伊通| 泊头市| 双城市| 舒兰市| 新巴尔虎右旗| 高邮市| 洞头县| 英山县| 清新县| 连州市| 南康市| 开原市| 罗平县| 小金县| 孟津县| 鄂托克旗| 永登县| 明水县| 昭苏县| 河南省| 阳原县| 偃师市| 三江| 桦甸市|