我没有目标C的经验,所以我遇到了一些符号的问题.在我的"AppDelegate.swift"文件中,顶部有一个"@UIMainApplication".这是什么意思?
另外,如果可能的话,您能否在C++中给我"等效"声明(如果存在)?
谢谢.
mat*_*att 17
好吧,你选了一个相当复杂的.在@
仅仅意味着这是一个属性 -一种特殊的标记或信号编译器,如苹果的解释在这里.但这@UIApplicationMain
是一个特别深刻的属性!它替代UIApplicationMain
了main.m文件中C/Objective-C应用程序核心的整个实现(我在这里解释):
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil,
NSStringFromClass([AppDelegate class]));
}
}
Run Code Online (Sandbox Code Playgroud)
这是应用程序的主入口点,实现整个启动和运行的代码是正在运行的应用程序.您可以在Swift中执行类似的操作 - 一个带有Swift等效代码的main.swift文件 - 但Swift通过让您使用该@UIApplicationMain
属性指定应用程序委托类来省去麻烦.
如果您将项目作为Objective-C或Objective-C++项目启动,模板将为您提供包含实现的主文件main
,因此在这方面没有必要做任何特殊的事情.
以@开头的关键字是编译器的指令 - 例如,在视图控制器中@IBOutlet
用于标识与可视化界面构建中的连接相关的变量声明(故事板或XIB文件 - 'IB'前缀代表'Interface Builder' ,这是Apple的设计工具部分的旧名称,它提供了用于可视化创建界面的GUI.
简而言之,@UIApplicationMain
是Swift应用程序的一个指示器,它指示哪个对象是应用程序的主应用程序委托文件.在Objective-C应用程序模板中,您将拥有一个main.m
设置应用程序委托的简单C文件.使用Swift,这个简单的实现成为一个单一的指令.
在这两种情况下,如果需要的话,可以用更复杂的东西替换琐碎的实现 - 但是在大多数应用程序中不需要任何其他东西,事实上如果你刚刚开始使用Swift,那么你需要一个非 - 通常实施最有可能为零.
归档时间: |
|
查看次数: |
5597 次 |
最近记录: |