zoukankan      html  css  js  c++  java
  • iOS工程中一天只让进行一次的操作如何做?

     转至: iosNSDateNSObject一天一次

    整体思路:当进行操作的时候记录操作时间存在偏好设置当中,当再次点击的时候获取现在的时间然后和之前记录的时间进行比较。如果是一天那么就提示“今天已经操作过了”,如果不是一天,那么可以正常操作,然后记录操作时间。如此循环往复。。。

    这里的一天只能操作一次指的是:

    (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];
    }

     

  • 相关阅读:
    Assembly介绍
    How to be a Programmer
    (转) 展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告
    ClientScript.RegisterStartupScript()
    sql server日期时间转字符串
    GridView 全选
    C# 获取xml里的值
    web 点击按钮,根据点击确认进行下一步操作
    字符串宽相同
    FormClosing
  • 原文地址:https://www.cnblogs.com/henusyj-1314/p/6382718.html
Copyright © 2011-2022 走看看