Swift语法

懒加载控件

private lazy var tableView : UITableView = { [unowned self] in 
        let tableView = UITableView(frame: CGRectZero, style: .plain)
        tableView.tg_width.equal(.fill)
        tableView.tg_height.equal(.fill)
        
        tableView.delegate = self
        tableView.dataSource = self
        tableView.register(UITableViewCell.self, forCellReuseIdentifier: "12")
        
        return tableView
    }()

简单的一个闭包

func callBackEvent(url: String,
                       reponse:(_ result: String) ->()) {
        
        let c1 = ""
        reponse(c1)
    }

类的初始化

class person {
    var name : String = ""  /// 值类型,初始化为空值
    var age : Int = 0  /// 值类型,初始化为空值
    var myStore : store?   /// 对象类型,最好设置为可选类型
}
可选链

协议

// 1. 协议标记为 @objc,并继承 NSObjectProtocol(可选方法必须的语法)
@objc protocol MyOptionalProtocol {
    // 2. 强制实现的方法
    func requiredMethod()
    
    // 3. 使用 optional 关键字定义可选方法
    @objc optional func optionalMethod()
    @objc optional var optionalProperty: String { get }
}

// 4. 类遵循协议(必须是 class 类型)
class MyClass: NSObject, MyOptionalProtocol {
    func requiredMethod() {
        print("必须实现的方法")
    }
    
    // 可选方法/属性可不实现
}

Result 的函数

func fetchData(completion: @escaping (Result<String, Error>) -> Void) {
    // 模拟异步操作
    DispatchQueue.global().async {
        let isSuccess = Bool.random()
        if isSuccess {
            completion(.success("数据加载成功"))
        } else {
            completion(.failure(NSError(domain: "com.example.error", code: 404")))
        }
    }
}

/// 使用
fetchData { result in
    switch result {
    case .success(let data):
        print("成功: \(data)")
    case .failure(let error):
        print("失败: \(error.localizedDescription)")
    }
}

cell 可以这种方式赋值

    var entity : goods?  {
        didSet {
            self.nameLabel.text = entity?.goods_name ?? ""
            self.nameLabel.sizeToFit()
        }
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift 简介 查看Swift当前版本 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X...
    mian小爬阅读 359评论 0 1
  • 1 懒加载 懒加载与OC中的懒加载的区别:懒加载的类一旦 设置为nil 后, 懒加载就不会再次执行,与OC中不同,...
    JunShine阅读 231评论 0 0
  • Swift 语法浅聊 1. 简单值 使用** let 来声明常量,使用 var **来声明变量. 简单值数据类型要...
    smile丽语阅读 1,166评论 0 2
  • 一.自动引用计数 1.自动引用计数工作机制 1.1 swift和oc一样,采用自动引用计数来管理内存 1.2 当有...
    尕小天阅读 932评论 2 5
  • 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 2014 年,在 ...
    充电星球阅读 9,649评论 17 99