首页 > 代码库 > [IOS]@UIApplicationMain
[IOS]@UIApplicationMain
当新建一个swift项目后,发现项目结构很简洁,没有.pch文件,也没有.main文件,
自然也不会发现main函数的入口,瞬间对app的启动过程没头绪了,点开 AppDelegate.swift
开头便发现了 @UIApplicationMain 很熟悉的名字,第一想到的就是 在Objc项目中的
int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([SENAppDelegate class])); } }
于是乎自然就认为 在swift下就认为 一个符号及一个单词 等于一个main.m文件干的活,好高效!!!
尼玛,真是不想要一点冗余代码呀这是,膜拜呀,swift 的高效性由此可见一斑。
首先看下小苹果官方的详细解释
然后又看了下swift 的声明方式,和Objc变化挺大的,对比UIApplication中的两个属性声明
1.0@property(nonatomic,readonly) UIWindow *keyWindow; @property(nonatomic,readonly) NSArray *windows;2.0 - (BOOL)canOpenURL:(NSURL *)url NS_AVAILABLE_IOS(3_0);VS
1.0 var keyWindow: UIWindow? { get } var windows: [AnyObject] { get }2.0<pre name="code" class="objc"> @availability(iOS, introduced=3.0) func canOpenURL(url: NSURL) -> Bool
对比不言自明 ~~
同样像官方说的一样,你也可以自己加上main.swift 指定响应的 delegate 名称,代码如下:
import Foundation import UIKit UIApplicationMain(C_ARGC, C_ARGV, NSStringFromClass(UIApplication), NSStringFromClass(AppDelegate))
仔细研究研究,swift 写项目除语法上的,其他的方面变化也挺大。。。
最后,只想说程序员好幸福,代码效率又高了。。。
尼玛从头学习吧。。。
[IOS]@UIApplicationMain
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。