@discardableResult
正常的方法如果有返回值的话,调用的时候必须有一个接收方,否则的话编译器会报一个警告,如果在方法前加上 @discardableResult 不处理的时候就不会有警告了。
在 Swift 4 中,可以把类型和协议用 & 组合在一起作为一个类型使用
@available(*, deprecated, renamed: “bookDetails”)
提示该方法已过期
associatedtype关联类型
定义一个协议时,有的时候声明一个或多个关联类型作为协议定义的一部分将会非常有用。关联类型为协议中的某个类型提供了一个占位名(或者说别名),其代表的实际类型在协议被采纳时才会被指定。你可以通过 associatedtype 关键字来指定关联类型
//模型struct Model { let age: Int}//协议,使用关联类型protocol TableViewCell { associatedtype T func updateCell(_ data: T)}//遵守TableViewCellclass MyTableViewCell: UITableViewCell, TableViewCell { typealias T = Model func updateCell(_ data: Model) {}
mutating
Swift 的 mutating 关键字修饰方法是为了能在该方法中修改 struct 或是 enum 的变量,所以如果你没在协议方法里写 mutating 的话,别人如果用 struct 或者 enum 来实现这个协议的话,就不能在方法里改变自己的变量了。
UIImage(named: name)可以在子线程加载
In iOS 9 and later, this method is thread safe.
网友评论