2012-10-10 67 views
0

我想添加30天到文件夾創建日期並在30天后阻止應用程序。 如果他們更改了系統日期書房,我的應用程序應該在計數後關閉。在Nsdate中添加30天的日期而不考慮系統日期

NSDateComponents *components; 
NSString *path = @"/Users/Syed/Library/Swasstik/KITSMAW0051_SWASSTIK_DB.sqlite"; 
BOOL isFile = [[NSFileManager defaultManager] fileExistsAtPath:path isDirectory:NO]; 
if (isFile) { 
NSLog(@"File exists"); 
NSDictionary* fileAttribs = [[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil]; 
NSDate *result = [fileAttribs fileCreationDate]; //or fileModificationDate 
NSLog(@"%@",result); 
    NSDate* date = [NSDate date]; 
NSLog(@"%@", [date description]); 

NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
components = [gregorianCalendar components:NSDayCalendarUnit 
                fromDate:result 
                 toDate:date 
                options:0]; 

[gregorianCalendar release]; 
NSLog(@"%ld", [components day]); 

請幫我解決這個問題。 在此先感謝。

+0

我不明白你的問題是什麼。如果你得到一個文件的創建日期,你可以將它與現在的時間進行比較。 – codingFriend1

+0

@ codingFriend1我不想與系統日期進行比較。用戶可以更改系統日期並使用我的應用程序。 – user1632217

回答

0

也許你可以嘗試在系統上查找最近修改的文件(例如,一個從用戶的首選文件夾,因爲這些都是非常頻繁的修改),並比較針對修改日期。即使用戶回退他的系統時間,之前修改的文件也會保留其較新的修改日期。

那當然,如果用戶永久保留,在過去他的系統時間(如1990年)將不會工作,但它會阻止企圖只讓時光倒流使用您的應用。我認爲有人不會永久性地讓系統時間錯誤,因爲這非常不方便。

+0

有沒有其他方法可以做到這一點呢?就像在文件夾創建日期中添加30天計數一樣。 – user1632217

+0

爲什麼要爲創建日期添加30天?但是,這當然可以使用NSFileManager的'setAttributes:ofItemAtPath:error:'方法,類似於您如何閱讀上面代碼中的屬性。 – codingFriend1

+0

我想在30天后封鎖應用程序,所以我想要這樣。 – user1632217