全體思緒:當停止操作的時分記載操作時間存在偏好設置當中,當再次點擊的時分獲取如今的時間然後和之前記載的時間停止比擬。假如是一天那麼就提示“明天曾經操作過了”,假如不是一天,那麼可以正常操作,然後記載操作時間。如此循環往復。。。
這裡的一天只能操作一次指的是:
(24點指的是清晨12:00,也就是00:00)
1、某一天恣意時間點到24點之間。
2、只需過了24點,立馬可以停止第二次操作。
3、假設你是23:59停止了一次操作,那麼過了一分鐘當前那就算第二天的了。所以可以停止第二次操作。
4、所以記住:不是在24小時之內。而是某一天之內。
首先我們要做的操作普通是網絡懇求,所以這裡就拿網絡懇求為例,當我們點擊按鈕,觸發辦法inviteParent然後判別能否一天之內,假如不是,那麼停止網絡懇求,那麼此時明天的一次時機就用了。。。所以參加網絡懇求成功,那麼此時記載如今的時間:
次要辦法:
NSDate *nowDate = [NSDate date];NSUserDefaults *dataUser = [NSUserDefaults standardUserDefaults];[dataUser setObject:nowDate forKey:@"nowDate"];[dataUser synchronize];
代碼示例:
-(void)DoInviteParentsWithPersons:(NSArray *)array groups:(NSArray *)groupArray usersType:(NSInteger)userType{SendNoticeBody *notice = [[SendNoticeBody alloc]init];notice.msgType = 1;notice.msgSrcType = 0;NSDictionary *destInfo = nil;destInfo = [[NSDictionary alloc]initWithObjectsAndKeys:notice.destPersons,@"person", nil];__weak __typeof(self)weakSelf = self;SendInvitePreNoticeSection *sec = [[SendInvitePreNoticeSection alloc]initWithMsgType:notice.msgType MsgSrcType:notice.msgSrcType DestInfo:destInfo NoticeContent:notice.msgContent SignName:notice.signName SourceId:notice.sourceId DepartFileIds:notice.fileIds ResultBlock:^(NSDictionary *dict, BOOL resultFlag, NSError *error) {if (resultFlag) {NSInteger resultCode = [dict JSONIntegerObjectForKey:@"resultCode"];if (resultCode == 1) {[self showSuccessHubContent:@"約請發送成功"];NSDate *nowDate = [NSDate date];NSUserDefaults *dataUser = [NSUserDefaults standardUserDefaults];[dataUser setObject:nowDate forKey:@"nowDate"];[dataUser synchronize];}else{NSString *errmsg = [dict objectForKey:@"resultMsg"];[self showErrorHubContent:errmsg];}}else{}}];[sec exec];}
那麼當第二次停止按鈕點擊的時分,就會獲取如今的時間和之前記載的時間停止比照,假如是同一天,那麼就不可以再次點擊了。提示“每日僅能批量約請一次”,按鈕的點擊時間代碼如下:
-(void)inviteParent{//一天之內只能批量約請一次NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];// NSLog(@"之前時間:%@", [userDefault objectForKey:@"nowDate"]);//之前存儲的時間// NSLog(@"如今時間%@",[NSDate date]);//如今的時間NSDate *now = [NSDate date];NSDate *agoDate = [userDefault objectForKey:@"nowDate"];NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];[dateFormatter setDateFormat:@"yyyy-MM-dd"];NSString *ageDateString = [dateFormatter stringFromDate:agoDate];NSString *nowDateString = [dateFormatter stringFromDate:now];// NSLog(@"日期比擬:之前:%@ 如今:%@",ageDateString,nowDateString);if ( [ageDateString isEqualToString:nowDateString]) {[self showErrorHubContent:@"每日僅能批量約請一次"];}else{[self DoInviteParentsWithPersons:array groups:groupArray usersType:nil];}}
次要代碼:
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];// NSLog(@"之前時間:%@", [userDefault objectForKey:@"nowDate"]);//之前存儲的時間// NSLog(@"如今時間%@",[NSDate date]);//如今的時間NSDate *now = [NSDate date];NSDate *agoDate = [userDefault objectForKey:@"nowDate"];NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];[dateFormatter setDateFormat:@"yyyy-MM-dd"];NSString *ageDateString = [dateFormatter stringFromDate:agoDate];NSString *nowDateString = [dateFormatter stringFromDate:now];// NSLog(@"日期比擬:之前:%@ 如今:%@",ageDateString,nowDateString);if ( [ageDateString isEqualToString:nowDateString]) {[self showErrorHubContent:@"每日僅能批量約請一次"];}else{[self DoInviteParentsWithPersons:array groups:groupArray usersType:nil];}


【iOS工程中一天只讓停止一次的操作怎樣做?】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!