Что означает "@UIApplicationMain"?


Я только что создал свой первый проект Swift, в AppDelegate.swift есть строка над объявлением класса-почему она там?!

...
import UIKit
import CoreData

@UIApplicationMain // <- WHY IS IT HERE?
class AppDelegate: UIResponder, UIApplicationDelegate {
... 
6 60

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 вместо использования этого атрибута.

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Attributes.html

@UIApplicationMain - это атрибут, применяемый к классу, объявленному ниже - AppDelegate, чтобы предоставить дополнительную информацию об этом классе.

в этом случае атрибут @UIApplicationMain показывает, что класс AppDelegate является делегатом приложения вашего приложения.

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