Что означает "@UIApplicationMain"?
Я только что создал свой первый проект Swift, в AppDelegate.swift
есть строка над объявлением класса-почему она там?!
...
import UIKit
import CoreData
@UIApplicationMain // <- WHY IS IT HERE?
class AppDelegate: UIResponder, UIApplicationDelegate {
...
6 ответов:
The
@UIApplicationMain
атрибут в Swift заменяет тривиальныйmain.m
файл, найденный в проектах Objective-C (целью которого является реализацияmain
функция, которая является точкой входа для всех программ C и вызоваUIApplicationMain
чтобы начать цикл запуска Cocoa Touch и инфраструктуру приложений).в Objective-C, основной (heh) бит конфигурации для каждого приложения, который
UIApplicationMain
функция обеспечивает назначение одного из пользовательских классов вашего приложения в качестве делегата общего .)
@UIApplicationMain
только для iOS. В OS X делегат приложения традиционно устанавливается в главном файле nib, обозначенном информацией.plist (то же самое для Swift, что и для ObjC) - но с OS X storyboards нет основного файла nib, так что@NSApplicationMain
то же самое делает.
@uiapplicationmain атрибут является заменой main.M файл & и точка входа для запуска приложения.
еще одна вещь, ваша программа может работать без этого @UIApplicationMain все, что вам нужно сделать, это комментарий //@UIApplicationMain` создать главный.Свифт же как главный.m в объективе c и напишите ниже код. это будет точкой входа вашего приложения
import Foundation class FLApplication: UIApplication { override func sendEvent(event: UIEvent!) { println("Entry Point") // this is an example } }
The AppDelegate.Свифт исходный файл имеет две основные функции:
Он создает точку входа в ваше приложение и цикл запуска, который обеспечивает ввод событий в приложение. Эта работа выполняется UIApplicationMain атрибут (@UIApplicationMain), который появляется в верхней части файл. UIApplicationMain создает объект приложения, который отвечает за управление жизненным циклом приложения и приложение объект делегата.
определяет AppDelegate класс, схема элементов для объекта делегата приложения. Делегат приложения создает окно, в котором отображается содержимое вашего приложения, и предоставляет место для ответа на переходы состояний в приложении. Класс AppDelegate-это место, где вы пишете свой пользовательский код уровня приложения.
теперь, когда документация Swift обновлена, вот соответствующий отрывок:
NSApplicationMain
применить этот атрибут к классу, чтобы указать, что это делегат приложения. Использование этого атрибута эквивалентно вызову NSApplicationMain (::) функция и передача имени этого класса в качестве имени класса делегата.
Если вы не используете этот атрибут, укажите main.swift файл с a main () функция, которая вызывает NSApplicationMain (:: функция). Например, если ваше приложение использует пользовательский подкласс NSApplication в качестве своего основного класса, вызовите функцию NSApplicationMain вместо использования этого атрибута.
@UIApplicationMain - это атрибут, применяемый к классу, объявленному ниже - AppDelegate, чтобы предоставить дополнительную информацию об этом классе.
в этом случае атрибут @UIApplicationMain показывает, что класс AppDelegate является делегатом приложения вашего приложения.
UIApplicationMain Примените этот атрибут к классу, чтобы указать, что это делегат приложения. Использование этого атрибута эквивалентно вызову функции UIApplicationMain и передаче имени этого класса в качестве имени класса делегата. (источник)