Во-первых, извините за неточность в названии, но я постараюсь описать мою проблему как можно точнее.
Я занимаюсь разработкой приложения для управления затратами / расходами.В этом случае у меня есть блок в методе viewdidload
:
Часть кода о том, что я получил до сих пор:
-(void)viewDidLoad {
[super viewDidLoad];
if([[self getfrequencyselected] isEqualToString:@"Daily"] && [self limitneedstoberaised]){
NSDateComponents *component = [[NSCalendar currentCalendar] components:NSCalendarUnitWeekday fromDate:[NSDate date]];
switch ([component weekday]) {
case 1:[self raisedaylimit];
break;
case 2: [self raisedaylimit];
break;
--- etc,etc ---
default:
break;
}
}
}
-(BOOL)limitneedstoberaised{
/*
Something like this:
If today's date is the same as the date stored in the SQLite DB (LASTUPDATEDATE column),
then return FALSE, else return TRUE;
[[NSCalendar currentCalendar] isDate:date1 inSameDayAsDate:date2];
*/
}
- В основном, если пользователь ранее выбирал ежедневное отслеживание затрат, введите в этом случае переключения.- В случае переключения 1, 2 и т. Д. Представляют дни недели, поэтому он должен повышать указанный предел затрат каждый прошедший день.
Моя проблема:
Этот блок находится в viewdidload
, поэтому он будет выполняться при каждом запуске приложения.
Моя проблема в том, что [self raisedaylimit]
будет вызываться каждый раз, когда пользователь запускает приложение, поэтому я хотел бы избежать этого, просто чтобы он выполнялся один раз в день, как говорит логика.
Возможное решение:
- Я думал о создании объекта NSUserDefaults для отслеживания при вызове метода
raisedaylimit
, переключения между YES и NO,но это кажется сложным. - Я подумал, что, возможно, этот блок должен быть за пределами
viewdidload
метода, чтобы блок выполнялся именно тогда, когда это необходимо