iOS开发文集

Swift 项目基本写法收集

2017-05-13  本文已影响12396人  十一岁的加重

泛型用法


func ==<T: CKKBaseModel>(obj1: T, obj2: T) -> Bool {
    return obj1.ssid == obj2.ssid
}

GCD相关

DispatchQueue.global().async {

    DispatchQueue.main.async {

        self.label?.text = "finished"

    }

}


let delay = DispatchTime.now() + .seconds(60)
DispatchQueue.main.after(when: delay) {
    // Do something
}

懒加载 lazyloading


let XCCacheDirectory: URL = {
    let urls = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask)
    return urls[urls.endIndex - 1]
}()

get set 方法


extension UIView {
    var width: CGFloat {
        get { return self.frame.size.width }
        set {
            var frame = self.frame
            //    newValue 就是这个set方法想要进行设置的值
            frame.size.width = newValue
            self.frame = frame
        }
    }
}

私有方法,私有属性,变量之类的得用fileprivate修饰

GCD 异步操作耗时,主线程执行操作


DispatchQueue.global(qos: .default).async {

           // do something
            
            DispatchQueue.main.asyncAfter(deadline: delayTime) {
                
                // do something
            }
        }


全局宏,不依赖类,可单独搞个文件(如:AppMacro.swift)来存放


//delegate 代理
let TSAppDelegate = UIApplication.shared.delegate as! AppDelegate

// 沙盒文档路径
let kSandDocumentPath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).last!


上一篇 下一篇

猜你喜欢

热点阅读