Xcode (objective-c)のクラスメソッド

Xcode (objective-c)で共通ロジックがあった場合、クラスメソッドを定義して使用することができます。
objective-cのクラスメソッドの使い方をまとめました。

サンプルプログラム
 メインのプログラムで、日付から曜日を取得するロジックで、曜日取得だけをクラスメソッドにしたものです。

メインプログラム

1// クラスメソッドを呼び出す
2MyClass01 *myClass = [MyClass01 ClassMethod01];
3 
4NSString *Wdate = @"20180411";
5Wweekday = [myClass yasumi_chk1:Wdate];
6NSLog(@"day,%ld",Wweekday);

クラスメソッド(hファイル)

1@interface MyClass01 : NSObject
2// クラスメソッドの宣言
3+ (id)ClassMethod01;
4// インスタンスメソッドの宣言
5- (NSInteger) yasumi_chk1:(NSString *)date_set;

クラスメソッド(mファイル)

1// クラスメソッドの実装、初期化処理
2+ (id)ClassMethod01 {
3    return [[self alloc] init];
4}
5 
6- (NSInteger) yasumi_chk1:(NSString *)date_set{
7     
8    // 曜日
9    NSCalendar *calendar = [NSCalendar currentCalendar];
10 
11    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
12    [dateFormatter setDateFormat:@"yyyyMMdd"];//日付フォーマット
13     
14    //チェック日領域
15    NSDate *chk_date = [dateFormatter dateFromString:date_set];//指定日セット NSString → NSDate
16     
17    // 曜日
18    NSDateComponents *comps = [calendar components:NSCalendarUnitWeekday fromDate:chk_date];
19    NSInteger weekday = comps.weekday; // 曜日(1が日曜日 7が土曜日)
20 
21    return weekday;
22}
Verified by MonsterInsights