2016-09-16 2 views
0

저는 Apple TV 용 스트리밍 TV 응용 프로그램 개발자입니다. 테스트 비행을 통해 앱 버전을 설치하면 날짜/시간이 예상 한 것과 다를 수 있습니다. NSDate()를 사용하여 검색합니다. 예상대로 UTC +000을 반환해야하지만 그렇지 않습니다. 이 가정에서 실수를 배제하기 위해 NSDateFormatter를 시도하고 Apple TV의 로케일을 사용했습니다. 내 Apple TV의 시간/지역은 암스테르담으로 설정되어 있습니다. NSDate()의 결과와 서식을 지정한 결과를 표시합니다. 내가 보는 결과는 다음과 같습니다. NSDate()는 UTC +000이 아니며 형식을 지정하면 암스테르담 시간/날짜가 아닙니다. 이것은 테스트 비행을 통해 설치 한 후에 만 ​​발생합니다. 앱을 닫을 때 Apple TV의 언어를 다른 언어로 변경하고 이전 언어로 변경 한 다음 NSDate()에서 결과를 다시 열면 형식 지정 결과가 정확합니다! 애플 티비처럼 약간 새로 고침을했다. (노트 : 나는 시간/존이 아닌 언어를 바꾼다.) 누군가 여기서 일어나는 일과 내가 작성한 코드에서 누락 된 것을 말할 수 있습니까?TestFlight 설치 후 NSDate()가 UTC +000을 반환하지 않습니다.

private func stringFromDateFormat() -> String { 
    let dateFormatForFormatter:String = "dd-MM-yyyy | HH:mm" 
    let todaysDate:NSDate = NSDate() 
    let locale:NSLocale = NSLocale.currentLocale() 
    let dateFormatter:NSDateFormatter = NSDateFormatter() 
    dateFormatter.calendar = NSCalendar(calendarIdentifier:NSCalendarIdentifierGregorian) 
    dateFormatter.locale = NSLocale(localeIdentifier: locale.localeIdentifier) 
    dateFormatter.dateFormat = dateFormatForFormatter 
    return dateFormatter.stringFromDate(todaysDate) 
    } 

위의 기능을 사용할 때 암스테르담 시간/날짜는 반환되지 않지만 Apple 장치에서는이 시간대가 설정됩니다. 다시 말하지만, 테스트 비행에서 설치하는 경우에만 발생합니다. 그리고 위에 설명 된 장치의 이상한 언어 전환으로 인해 문제가 옳았습니다. 때로는 NSDate()를 표시하는 데 며칠이 걸릴 수 있습니다. 경험 한 것은 30 일이었습니다.

답변

0

코드 또는 앱에 문제가 없습니다. 내가 시도한 다른 앱들도 같은 문제가 있습니다. 애플 티비가 NTP에 접근 할 수 없다는 것과 관련이있다. Apple TV를 시작할 때 현재 값/저장된 날짜에서 NSDate()로 데리러 오는 날짜를 검색하는 것으로 보이며 장치가 어떤 이유인지 새로 고침 할 수 없습니다. 언어를 변경하면 Apple TV가 다시 시작/새로 고침되고 NTP에 연결할 수 있습니다.