我是swift的初学者。我知道Swift是按顺序处理的,但程序有一个起点,我认为它不是xcodeproj中的Viewcontroller.swift。 起点在哪里?
答案 0 :(得分:4)
所有应用程序,无论是Swift还是Objetive C,都以 main 类开头。但是swift自动实现了由@UIApplicationMain
属性生成的main。 @UIApplicationMain
的简单实现就像:
UIApplicationMain(C_ARGC, C_ARGV, nil, NSStringFromClass(AppDelegate))
表示运行AppDelegate
类。
让我们从@UIApplicationMain
评论AppDelegate
并运行。你会因为两个错误而导致构建失败,例如
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
。
看,它确实需要一个main作为入口/起点。
现在创建一个 main.swift 文件并编写以下代码并再次运行。
import UIKit
UIApplicationMain(C_ARGC, C_ARGV, nil, NSStringFromClass(AppDelegate))
它将成功编译并加载与@UIApplicationMain
完全相同的视图。