你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS工程中一天只讓停止一次的操作怎樣做?

iOS工程中一天只讓停止一次的操作怎樣做?

編輯:IOS開發綜合

全體思緒:當停止操作的時分記載操作時間存在偏好設置當中,當再次點擊的時分獲取如今的時間然後和之前記載的時間停止比擬。假如是一天那麼就提示“明天曾經操作過了”,假如不是一天,那麼可以正常操作,然後記載操作時間。如此循環往復。。。


這裡的一天只能操作一次指的是:

(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工程中一天只讓進行一次的操作怎樣做?


IOS工程中一天只讓進行一次的操作怎樣做?





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

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved