Objective -C NSDate、Category 、Extension、Protocol
NSDateの使用 NSDateは、Cocoaにおける日付と時間を処理するための基礎クラスであり、クラスのある所定の時刻、具体的な日付、時間、およびタイムゾーン をカプセル化する.+dateメソッドを使用して現在の日付と時刻 を取得する.例えば、NSDate*nowDate=[NSDate date]; 注意、NSLog(@"%@",nowDate);どのタイムゾーンの時間、印刷時間にかかわらず、印刷時には常に対応する0タイムゾーン時間 を印刷する
NSTimeinterval NSTimeInterval(すなわちdoubleタイプ)は、秒単位の時間間隔 を表すために用いる.-initWithTimeIntervalSinceNow:メソッドを使用してNSTimeIntervalパラメータを入力し、NSDateオブジェクト を作成できます.例えば、NSDate*tomorrowDate=[[NSDate alloc]i n i t WithTimeIntervalSinceNow: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)、ham/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 - (void)makeMoney; @optional//オプションのプロトコル、 - (void)washcloth; - (void)cook; @end プロトコルのメソッドのデフォルトは、@requiredキーワード@optional修飾のメソッドがオプションであり、実装しても実装しなくてもよいという実装が必要です.
契約の遵守方法 #import “MarryProtocol” #ここでプロトコルを導入するヘッダファイル @interface Boy : NSObject ... @end @implementation Boy //プロトコルにおけるメソッドの実装 @end
delegate設計モード Protocolのコア使用シーンはdelegate設計モードを実現することである. delegate音訳代理.通俗的に言えば代理店で、主な任務はあなたにいくつかの任務を完成させることです. 例えば、家政婦はdelegateと考えることができ、主な任務は子供を連れて行くこと、料理を作ること、洗濯することなどです.
NSTimeinterval
NSDateFormatterの使用
1.
2.
3.
カテゴリCategory
Categoryの定義
Categoryの声明
Categoryの実現
Categoryとサブクラスの違い
Extension
Extensionの定義
Extensionの定義
Extensionの実装
CategoryとExtensionの違い
Protocol
Protocol
Protocolの定義
契約の遵守方法
delegate設計モード