Xcode 開発で前日の日付を使用(実装)する方法

Xcode 開発で、前日の日付を使用したいことがありました。
Xcode で、関数等が用意されていれば容易に算出できますが、そのような関数が見つかりません。

この方法では、システム日付(現在時刻)をもとに取得しています。
秒単位で指定することで、過去はマイナス計算をさせてセットします。

Xcode 開発(Objective-c)で、実装することで対処しています。

1    NSDateFormatter *NsdateFor = [[NSDateFormatter alloc] init];
2    NsdateFor.dateFormat = @"yyyyMMdd";
3 
4//今日
5    NSString *today = [NsdateFor stringFromDate:[NSDate date];
6 
7//前日
8    NSString *yesterday = [NsdateFor stringFromDate:
9[NSDate dateWithTimeIntervalSinceNow:-24*60*60]];

Xcode 開発で、指定日の前日を取得したいとき、上記当日日付をもとに対応しようと試みましたが、うまい対処ができないため、古典的なロジックで対応することになりました。(この方法しかないのか調べましたが、回答が見つからないため、以下のロジックで対処しています。)

1NSString *sitei_date = @"20180116";
2 
3NSString *date_y = [sitei_date substringWithRange:NSMakeRange(0, 4)];//年
4NSString *date_m = [sitei_date substringWithRange:NSMakeRange(4, 2)];//月
5NSString *date_d = [sitei_date substringWithRange:NSMakeRange(6, 2)];//日
6 
7NSInteger date_y2 = [date_y intValue];  //年 数値変換
8NSInteger date_m2 = [date_m intValue];  //月 数値変換
9NSInteger date_d2 = [date_d intValue];  //日 数値変換
10 
11if (date_d2 != 1){  //1日以外
12    date_d2 = date_d2 - 1;      //1日以外は、前日をセット
13}else{
14     
15    if (date_m2 != 1){                      //1日で1月以外
16        date_m2 = date_m2 - 1;
17        date_d2 = 31;                       //前月末を31日でセット
18         
19        if ((date_m2 == 4)||(date_m2 == 6)||
20            (date_m2 == 9)||(date_m2 == 11)){   //小の月をセットし直す
21            date_d2 = 30;
22             
23        }
24        if (date_m2 == 2){                  //2月の対応
25            date_d2 = 28;
26            if (date_y2 == 2020){           //2020年 閏年
27                date_d2 = 29;
28            }
29        }
30 
31    }else{                                  //1月1日のとき 前年大晦日セット
32        date_y2 = date_y2 - 1;
33        date_m2 = 12;
34        date_d2 = 31;
35    }
36}
37 
38date_y = [NSString stringWithFormat:@"%04d",date_y2];   //4桁固定
39date_m = [NSString stringWithFormat:@"%02d",date_m2];   //2桁固定
40date_d = [NSString stringWithFormat:@"%02d",date_d2];   //2桁固定
41 
42NSString *date_wk = [date_y stringByAppendingString:date_m];    //年月
43NSString *next_date = [date_wk stringByAppendingString:date_d]; //年月日
44 
45NSLog(@"xxxx %@",next_date);    //確認用

追記2018.01.18
Xcode 開発で、指定日より翌日を算出するロジックは、以下になります。
日付の加算方法により、1週間後、10日後などの設定も可能です。

1-(void)tomorrow_sec{
2     
3 
4    NSString *Wdate_chk = @"20180118"//指定日
5    NSString *date_y = [Wdate_chk substringWithRange:NSMakeRange(0, 4)];//年
6    NSString *date_m = [Wdate_chk substringWithRange:NSMakeRange(4, 2)];//月
7    NSString *date_d = [Wdate_chk substringWithRange:NSMakeRange(6, 2)];//日
8     
9    NSInteger date_y2 = [date_y intValue];//年 数値変換
10    NSInteger date_m2 = [date_m intValue];//月 数値変換
11    NSInteger date_d2 = [date_d intValue];//日 数値変換
12     
13    date_d2 = date_d2 + 1;//翌日セット
14     
15    if ((date_m2 == 1)||(date_m2 == 3)||(date_m2 == 5)||
16        (date_m2 == 7)||(date_m2 == 8)||(date_m2 == 10)){   //大の月
17         
18        if (date_d2 == 32){     //32日なら翌日とする
19            date_m2 = date_m2 + 1;
20            date_d2 = 1;
21        }
22         
23    }
24         
25    if (date_m2 == 12){ //12月
26        if (date_d2 == 32){ //32日なら翌年1月1日セット
27            date_y2 = date_y2 + 1;
28            date_m2 = 1;
29            date_d2 = 1;
30        }
31    }
32     
33    if ((date_m2 == 4)||(date_m2 == 6)||
34        (date_m2 == 9)||(date_m2 == 11)){   //小の月
35         
36        if (date_d2 == 31){ //31日なら翌日とする
37            date_m2 = date_m2 + 1;
38            date_d2 = 1;
39        }
40    }
41    if (date_m2 == 2){  //2月
42         
43        if (date_d2 >= 29){  //29日以上のとき
44            if (date_y2 != 2020){   //閏年でない年
45                 
46                date_m2 = date_m2 + 1;
47                date_d2 = 1;
48                 
49            }else{
50                if (date_d2 == 30){ //2020年
51                    date_m2 = date_m2 + 1;
52                    date_d2 = 1;
53                }
54                 
55            }
56        }
57    }
58     
59    date_y = [NSString stringWithFormat:@"%04d",date_y2];
60    date_m = [NSString stringWithFormat:@"%02d",date_m2];
61    date_d = [NSString stringWithFormat:@"%02d",date_d2];
62     
63    NSString *date_ym = [date_y stringByAppendingString:date_m];
64    Wdate_chk = [date_ym stringByAppendingString:date_d];
65     
66//        NSLog(@"xxxx %@",Wdate_chk);
67     
68}
Verified by MonsterInsights