[Swift]@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 写项目除语法上的,其他的方面变化也挺大。。。

最后,只想说程序员好幸福,代码效率又高了。。。

尼玛从头学习吧。。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值