Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика XCode

Разработчик

Swift язык программирования

iBook
На этой странице

Атрибуты

Атрибуты предоставляют больше информации об объявлении или типе. Существует два вида атрибутов в Swift, те, которые применяются к объявлениям и тем, которые применяются к типам.

Вы указываете атрибут путем записи @ символ, сопровождаемый именем атрибута и любыми параметрами, что атрибут принимает:

  • @attribute name
  • @attribute name(attribute arguments)

Некоторые атрибуты объявления принимают параметры, указывающие больше информации об атрибуте и как это применяется к определенному объявлению. Эти параметры атрибута включаются в круглые скобки, и их формат определяется атрибутом, которому они принадлежат.

Атрибуты объявления

Можно применить атрибут объявления к объявлениям только. Однако можно также применяться noreturn припишите функциональному или типу метода.

availability

Примените этот атрибут к любому объявлению для указания жизненного цикла объявления относительно определенных платформ и версий операционной системы.

availability атрибут всегда появляется со списком двух или больше разделенных от запятой параметров атрибута. Эти параметры начинаются с одного из следующих имен платформы: iOS, iOSApplicationExtension, OSX, или OSXApplicationExtension. Можно также использовать звездочку (*) указать доступность объявления по всем упомянутым выше именам платформы. Остающиеся параметры могут появиться в любом порядке и указать дополнительную информацию о жизненном цикле объявления, включая важные этапы.

  • unavailable параметр указывает, что объявление не доступно на указанной платформе.

  • introduced параметр указывает первую версию указанной платформы, в которой было представлено объявление. Это имеет следующую форму:

    • introduced=version number

    Номер версии состоит из положительного целочисленного или десятичного числа с плавающей точкой.

  • deprecated параметр указывает первую версию указанной платформы, в которой осуждалось объявление. Это имеет следующую форму:

    • deprecated=version number

    Номер версии состоит из положительного целочисленного или десятичного числа с плавающей точкой.

  • obsoleted параметр указывает первую версию указанной платформы, в которой объявление было obsoleted. Когда объявление является obsoleted, оно удалено из указанной платформы и больше не может использоваться. Это имеет следующую форму:

    • obsoleted=version number

    Номер версии состоит из положительного целочисленного или десятичного числа с плавающей точкой.

  • message параметр используется для обеспечения текстового сообщения, это выведено на экран компилятором при испускании предупреждения или ошибки об использовании осуждаемого или obsoleted объявления. Это имеет следующую форму:

    • message=message

    Сообщение состоит из строкового литерала.

  • renamed параметр используется для обеспечения текстового сообщения, указывающего новое имя для объявления, в которое это было переименовано. Новое имя выведено на экран компилятором при испускании ошибки об использовании переименованного объявления. Это имеет следующую форму:

    • renamed=new name

    Новое имя состоит из строкового литерала.

    Можно использовать renamed параметр в сочетании с unavailable параметр и объявление альтернативного имени типа, чтобы указать клиентам Вашего кода, что было переименовано объявление. Например, когда имя объявления изменено между выпусками платформы или библиотеки, это полезно.

    • // First release
    • protocol MyProtocol {
    • // protocol definition
    • }
    • // Subsequent release renames MyProtocol
    • protocol MyRenamedProtocol {
    • // protocol definition
    • }
    • @availability(*, unavailable, renamed="MyRenamedProtocol")
    • typealias MyProtocol = MyRenamedProtocol

Можно применяться многократный availability атрибуты на единственном объявлении для указания доступности объявления на различных платформах. Компилятор использует availability припишите только, когда атрибут указывает платформу, соответствующую текущую целевую платформу.

autoclosure

Этот атрибут используется для задержки оценки выражения путем автоматического обертывания того выражения в закрытие без параметров. Примените этот атрибут к объявлению параметра для функционального или типа метода, не берущего параметров, и это возвращает тип выражения. Объявления с autoclosure атрибут подразумевает noescape также, кроме тех случаев, когда переданный дополнительный параметр атрибута escaping. Для примера того, как использовать autoclosure припишите, посмотрите Функциональный Тип.

noescape

Примените этот атрибут к объявлению функции или объявлению метода, чтобы указать, что параметр, это не будет сохранено для более позднего выполнения, такого, что это, как гарантируют, не переживет время жизни вызова. Функциональные параметры типа с noescape атрибут объявления не требует явного использования self. для свойств или методов.

noreturn

Примените этот атрибут к объявлению функции или объявлению метода, чтобы указать что соответствующий тип той функции или метода, T, @noreturn T. Можно отметить функциональный или тип метода с этим атрибутом, чтобы указать, что функция или метод не возвращаются к его вызывающей стороне.

Можно переопределить функцию или метод, не отмеченный с noreturn атрибут с функцией или методом, который является. Однако Вы не можете переопределить функцию или метод, отмеченный с noreturn атрибут с функцией или методом, который не является. Подобные правила применяются при реализации метода протокола в соответствующем типе.

NSApplicationMain

Примените этот атрибут к классу, чтобы указать, что это - делегат приложения. Используя этот атрибут эквивалентно вызову NSApplicationMain функционируйте и передающий имя этого класса как имя класса делегата.

Если Вы не используете этот атрибут, предоставьте a main.swift файл с a main функция, вызывающая NSApplicationMain функция. Например, если Ваше приложение использует пользовательский подкласс NSApplication как его основной класс, вызовите NSApplicationMain функция вместо того, чтобы использовать этот атрибут.

NSCopying

Примените этот атрибут к сохраненному переменному свойству класса. Этот атрибут заставляет метод set свойства синтезироваться с копией значения свойства — возвращенный copyWithZone(_:) метод — вместо значения самого свойства. Тип свойства должен соответствовать NSCopying протокол.

NSCopying атрибут ведет себя в пути, подобном Objective C copy атрибут свойства.

NSManaged

Примените этот атрибут к сохраненному переменному свойству класса, наследовавшегося от NSManagedObject указать, что хранение и реализация свойства предоставлены динамично Базовыми Данными во время выполнения на основе связанного описания объекта.

objc

Примените этот атрибут к любому объявлению, которое может быть представлено в Objective C — например, невложенные классы, протоколы, неуниверсальные перечисления (ограниченный к целочисленным типам необработанного значения), свойства и методы (включая методов get и методы set) классов и протоколов, инициализаторов, deinitializers, и нижних индексов. objc атрибут говорит компилятору, что объявление доступно для использования в коде Objective C.

Если Вы применяетесь objc припишите классу или протоколу, это неявно применилось к элементам того класса или протокола. Компилятор также неявно добавляет objc припишите классу, наследовавшемуся от другого класса, отмеченного с objc атрибут. Протоколы, отмеченные с objc атрибут не может наследоваться из протоколов, которые не являются.

Если Вы применяетесь objc припишите перечислению, каждый случай перечисления представлен коду Objective C как связь имени перечисления и имени случая. Например, случай называют Venus в Swift Planet перечисление представлено коду Objective C как названный случай PlanetVenus.

objc атрибут дополнительно принимает единственный параметр атрибута, состоящий из идентификатора. Используйте этот атрибут, когда Вы захотите представить другое имя к Objective C для объекта objc атрибут применяется к. Можно использовать этот параметр для именования классов, протоколов, методов, методов get, методов set и инициализаторов. Пример ниже представляет метода get для enabled свойство ExampleClass к Objective C кодируют как isEnabled вместо так же, как имя самого свойства.

  • @objc
  • class ExampleClass {
  • var enabled: Bool {
  • @objc(isEnabled) get {
  • // Return the appropriate value
  • }
  • }
  • }
UIApplicationMain

Примените этот атрибут к классу, чтобы указать, что это - делегат приложения. Используя этот атрибут эквивалентно вызову UIApplicationMain функционируйте и передающий имя этого класса как имя класса делегата.

Если Вы не используете этот атрибут, предоставьте a main.swift файл с a main функция, вызывающая UIApplicationMain функция. Например, если Ваше приложение использует пользовательский подкласс UIApplication как его основной класс, вызовите UIApplicationMain функция вместо того, чтобы использовать этот атрибут.

Атрибуты объявления, используемые интерфейсным разработчиком

Взаимодействуйте через интерфейс атрибуты Разработчика являются атрибутами объявления, используемыми Интерфейсным Разработчиком для синхронизации с XCode. Swift обеспечивает следующие Интерфейсные атрибуты Разработчика: IBAction, IBDesignable, IBInspectable, и IBOutlet. Эти атрибуты являются концептуально тем же как своими дубликатами Objective C.

Вы применяетесь IBOutlet и IBInspectable атрибуты к объявлениям свойства класса. Вы применяетесь IBAction припишите объявлениям метода класса и IBDesignable припишите объявлениям класса.

Атрибуты типа

Можно применить атрибуты типа к типам только. Однако можно также применяться noreturn припишите объявлению функции или объявлению метода.

noreturn

Примените этот атрибут к типу функции или метода, чтобы указать, что функция или метод не возвращаются к его вызывающей стороне. Можно также отметить объявление функции или объявление метода с этим атрибутом, чтобы указать что соответствующий тип той функции или метода, T, @noreturn T.

Грамматика атрибута

атрибут «пункт параметра атрибута названия атрибута выбирает»

название атрибута идентификатор -

пункт параметра атрибута «сбалансированные маркеры выбирают»

атрибуты «атрибуты атрибута выбирают»

сбалансированные маркеры «сбалансированный маркер балансировались, маркеры выбирают»

сбалансированный маркер «сбалансированные маркеры выбирают»

сбалансированный маркер «сбалансированные маркеры выбирают»

сбалансированный маркер «сбалансированные маркеры выбирают»

сбалансированный маркер Любой идентификатор, ключевое слово, литерал или оператор

сбалансированный маркер Любая пунктуация кроме , , , , , или