Xcode (objective-c)で共通ロジックがあった場合、クラスメソッドを定義して使用することができます。
objective-cのクラスメソッドの使い方をまとめました。
サンプルプログラム
メインのプログラムで、日付から曜日を取得するロジックで、曜日取得だけをクラスメソッドにしたものです。
メインプログラム
// クラスメソッドを呼び出す
MyClass01 *myClass = [MyClass01 ClassMethod01];
NSString *Wdate = @"20180411";
Wweekday = [myClass yasumi_chk1:Wdate];
NSLog(@"day,%ld",Wweekday);
クラスメソッド(hファイル)
@interface MyClass01 : NSObject // クラスメソッドの宣言 + (id)ClassMethod01; // インスタンスメソッドの宣言 - (NSInteger) yasumi_chk1:(NSString *)date_set;
クラスメソッド(mファイル)
// クラスメソッドの実装、初期化処理
+ (id)ClassMethod01 {
return [[self alloc] init];
}
- (NSInteger) yasumi_chk1:(NSString *)date_set{
// 曜日
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyyMMdd"];//日付フォーマット
//チェック日領域
NSDate *chk_date = [dateFormatter dateFromString:date_set];//指定日セット NSString → NSDate
// 曜日
NSDateComponents *comps = [calendar components:NSCalendarUnitWeekday fromDate:chk_date];
NSInteger weekday = comps.weekday; // 曜日(1が日曜日 7が土曜日)
return weekday;
}
