;
Версия Swift 1.2.принесла очень существенные и долгожданные изменения языка Swift :
— инкрементная компиляция. Это означает, что файлы с исходным кодом, которые не были изменены, больше не будут заново компилироваться по умолчанию,что значительно уменьшит время компиляции
— улучшенные сообщения об ошибках и повышение стабильности в Xcode
— “static” методы и свойства ( properties) теперь разрешены в classes (как псевдоним для “class final”). Теперь вам разрешается декларировать как «static» хранимые свойства (stored properties) в classes, которые сохраняются глобально и lazily инициализируются при первом доступе (то есть как глобальные переменные).
Теперь очень легко создавать Singletons — буквально одной строкой кода.
— в протоколах (Protocols) теперь требуется декларировать тип как “static” вместо “class”
— появился новый тип Set, который является взаимозаменяемым (bridging) с Objective-C классом NSSet,
также, как и String
, Array и
Dictionary
— взаимозаменяемы ( bridging) с их соответствующими Objective-C классами. Вы можете делать с Set в Swift все, что вы ожидаете делать с множествами вообще: проверять принадлежность значения к множеству, перечислять все элементы множества, выполнять операции union и intersect и т.д. Это существенное дополнения в стандартную библиотеку, которое закрыло огромную абстрактную «дыру», так как NSSet
не чувствовал себя комфортно в Swift
Ждем того же от NSDate
и других.
— изменен глобальный метод countElements на count
-приоритет (precedence) оператора ?? повышен, чтобы привязать его более жестко, чем логические операции и операции сравнения, но ниже, чем преобразование и операторы диапазона ( range). Это обеспечивает более полезное поведение выражений подобных этому: