小明学Swift-02-项目篇

2015-10-23  本文已影响220人  TYM

Swift入口

import UIKit
// Swift项目程序的入口
@UIApplicationMain 

class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

}

UIApplicationMain(Process.argc, Process.unsafeArgv, nil, NSStringFromClass(AppDelegate.self))
```


自定义Log

func TYMLog<T>(message:T, file: NSString = __FILE__, method: String = __FUNCTION__, line: Int = __LINE__) {
    
    #if DEBUG
    print("\(method)[\(line)]: \(message)")
    #endif
}
�创建标记

命名空间

获取项目名称的key

异常

do {
    // 可能发生错误的代码
    let dataArr = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers)
} catch {
     // 发生错误后,需要执行的代码 
}

根据字符串创建类

        // 0.动态获取命名空间
        let nameSpace = NSBundle.mainBundle().infoDictionary!["CFBundleExecutable"]
        // 1.将AnyObject转换成String
        if let ns = nameSpace as? String
        {
            // 3.根据命名空间和名字创建类
            let cls: AnyClass? = NSClassFromString(ns + "." + childControllerName)
            // 4.将AnyClass类型转换为UIViewController类型
            if let clsType = cls as? UIViewController.Type
            {
                // 5.根据控制器类类型创建一个控制器对象
                let homeVC = clsType.init()
            }  
        }

自定义View时候的注意事项

// 通过代码创建一个控件就会调用
    override init(frame: CGRect) {
        super.init(frame: frame)
//        backgroundColor = UIColor.purpleColor()
        // 初始化UI
        setupUI()
    }

    // 通过XIB/SB 创建一个控件就会调用
    // 在Swift中, 为了简化业务逻辑, 默认情况下如果说自定义一个View, 那么建议要么是自定义代码的, 要么是自定义XIB/SB
    required init?(coder aDecoder: NSCoder) {
        // fatalError: 致命错误
        fatalError("init(coder:) has not been implemented")
    }

// 同时支持XIB/SB
required init?(coder aDecoder: NSCoder) {
        �super.init(coder: aDecoder)
        // 初始化UI
        setupUI()
    }

Swift项目下使用OC框架

上一篇 下一篇

猜你喜欢

热点阅读