2012-10-10 3 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