2015-10-13 6 views
2

Я пытаюсь инициализировать объект NSTimeZone так:NSTimeZone результаты инициализации в «не удалось прочитать данные»

var timezone = NSTimeZone.init(name: "Europe/Moscow") 

вместо ноль или законным значение локали - я получаю «не удалось прочитать данные "отладка инструмента Xcode в

enter image description here

Я получил часовой пояс строки (" Europe/Moscow ") с помощью NSTimeZone.knownTimeZoneNames()

Я использую xCode 7

Что я делаю неправильно?

+1

вместо var use let.Its работает отлично для меня. let _timeZone = NSTimeZone (имя: "Europe/Moscow") печать (_timeZone) – IamAnil

+0

Hm. Да, заявление печати дает мне: Дополнительный (Европа/Москва (GMT + 3) смещение 10800) - отладчик по-прежнему показывает «неспособный прочитать данные» –

+1

Просмотр переменных отладчика иногда просто * неверно *. Если print() дает правильный результат, все в порядке. –

ответ

0

Как отмечалось в комментариях - вид переменных был просто неправильно - print() привел к правильному выводу.

Запуск симулятора iPhone 6 вместо симулятора iPhone 5 дает ожидаемые результаты.

0

Не использовали этот класс раньше, но я предполагаю, что это должно быть let timezone = NSTimeZone(name : "")? Никогда не видел класс, инициализированный таким образом.

+0

Да, это, вероятно, более чистый (y) - но он дает тот же результат –

0

Его работает отлично для меня, использовать пусть вместо var.Check ниже enter image description here

Для справки Swift NSDate UTC time and local time

+0

Hm - можете попробовать запустить его с помощью симулятора IPhone 5? При работе с симулятором IPhone 6 я также получаю его правильно (независимо от использования let или var) –