2016-07-25 2 views
2

매일 시작일에 재설정하려는 사용자 통계를 추적하는 변수가 있습니다. 어떻게해야합니까? 응용 프로그램이 백그라운드에서 실행되도록 허용되지 않았기 때문에 응용 프로그램이 활성화 될 때마다 확인을해야하지만 한 번만 변수를 재설정하는 방법을 모르겠습니다. 나는 응용 프로그램이 시작하지만, 문제는 응용 프로그램이 하루에 많은 시간을 출시 할 수있을 때 확인하려면이 기능을 사용하고자매일 시작일에 변수를 재설정하려면 어떻게합니까?

let beginingOfDay = NSCalendar.currentCalendar().startOfDayForDate(NSDate()) 
    func resetCurrentTime(){ 

    // Date comparision to compare current date and begining of the day. 
    let dateComparisionResult:NSComparisonResult = NSDate().compare(beginingOfDay) 

    if dateComparisionResult == NSComparisonResult.OrderedDescending || dateComparisionResult == NSComparisonResult.OrderedSame { 
     // Current date is greater or equal to end date. 
     currentTime = 0 //reset the time tracker 
    } 
} 

: 이것은 내가 사용하고 싶은 기능입니다. 사용자가 응용 프로그램을 사용하고 있거나 응용 프로그램이 활성화되거나 해당 날짜에 처음 시작될 경우 하루 중 한 번만 변수를 재설정 할 수 있습니까? 감사합니다.

답변

4

사용자는이 값을 기본값으로 저장할 수 있습니다.

그래서 흐름은 다음

  1. 앱을 실행하거나 사용자 기본 설정에서 변수의 값이 현재 날짜와 동일한 지 확인 활성화 된 경우 (예 : 25/07/2016), 아무 것도하지 마십시오.
  2. 값이 다른 경우 사용자 기본값의 값을 현재 날짜로 업데이트합니다. 응용 프로그램이 실행되는 날짜가 변경되면

, 당신이 알림에 가입하여 변수의 값을 업데이트 할 수 있습니다 UIApplicationSignificantTimeChangeNotification

+0

그 통지가 존재 몰랐다. 시스템에 게시되는시기는 언제입니까? – irkinosor

+0

문서에서 : 시간대가 크게 변경되었을 때 게시됩니다 (예 : 새날 (자정), 이동 통신사 시간 업데이트, 일광 절약 시간제 변경). – fiks

+0

캐리어 업데이트는 무엇을 의미하며 타이밍에 어떤 영향을 미칩니 까? 절대 자정에 한해 자정에 발생하는보다 제한적인 알림이 있습니까? – irkinosor

관련 문제