全體思緒:當停止操作的時分記載操作時間存在偏好設置當中,當再次點擊的時分獲取如今的時間然後和之前記載的時間停止比擬。假如是一天那麼就提示“明天曾經操作過了”,假如不是一天,那麼可以正常操作,然後記載操作時間。如此循環往復。。。
這裡的一天只能操作一次指的是:
(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工程中一天只讓停止一次的操作怎樣做?】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!