iOS工程中一天只讓進行一次的操作如何做?

2022-08-10 08:24:12 字數 1666 閱讀 7525

轉至: ios

nsdate

nsobject

一天一次

整體思路:當進行操作的時候記錄操作時間存在偏好設定當中,當再次點選的時候獲取現在的時間然後和之前記錄的時間進行比較。如果是一天那麼就提示「今天已經操作過了」,如果不是一天,那麼可以正常操作,然後記錄操作時間。如此迴圈往復。。。

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

(24點指的是凌晨12:00,也就是00:00)

1、某一天任意時間點到24點之間。

2、只要過了24點,立馬可以進行第二次操作。

3、假如你是23:59進行了一次操作,那麼過了一分鐘以後那就算第二天的了。所以可以進行第二次操作。

4、所以記住:不是在24小時之內。而是某一天之內。

主要方法:

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

else

}else

}];[sec exec];

}

那麼當第二次進行按鈕點選的時候,就會獲取現在的時間和之前記錄的時間進行對比,如果是同一天,那麼就不可以再次點選了。提示「每日僅能批量邀請一次」,按鈕的點選時間**如下:

-(void

)inviteparent

else

}

主要**:

nsuserdefaults *userdefault =[nsuserdefaults standarduserdefaults];

////

之前儲存的時間

//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])

else

Windows服務定點一天只執行一次

如windows自開發的服務 設定的時間範圍為10點,意思為在10 11點之間會執行 再設定迴圈5分鐘執行一次 比如說同步某些資料,或者生成某中間xml檔案,如果如上設定,就會在10 11點之間迴圈執行很多次,導致生成很多重複檔案.其實一般該類服務只需要一天執行一次即可.那怎麼控制呢,既能在10 1...

讓程式只啟動一次

讓程式只啟動一次 有時在開發程式的時候,有時需要只能同時執行乙個例項.mutex 類,稱為互拆體,是乙個同步基元,它只向乙個執行緒授予對共享資源的獨佔訪問權。當兩個或更多執行緒需要同時訪問乙個共享資源時,系統需要使用同步機制來確保一次只有乙個執行緒使用該資源。如果乙個執行緒獲取了互斥體,則要獲取該互...

Windows讓程式只執行一次

一 通過建立互斥量來判斷 winapi winmain hinstance,hinstance,lpstr,int if getlasterror error already exists catch exception exception return 0 二 用系統原子 winapi winma...