Swift之只能被类遵守的协议

有3种方法可以保证协议只能被类遵守1.协议遵守NSObjectprotocol Runable: NSObject { }2.协议遵守classprotocol Runable: class { }3.使用@objc修饰协议// 被@...

Swift之条件编译

条件编译:顾名思义,就是在一定条件下才会编译```swift// 操作系统: macOS iOS tvOS watchOS Linux Android Windows FreeBSD#if os(macOS) || os(iOS)

Swift之where条件示例2

一.switch中使用```swiftvar data = (10, “jack”)

Swift之字面量和字面量协议

一.字面量(Literal)var age = 10var isRed = falsevar name = "Jack"上面代码中的10,false,”Jack”就是字面量

Swift之泛型类型约束

一.示例```swiftprotocol Stackable { // 泛型协议,约束条件: Equatable associatedtype Element: Equatable}

Swift之泛型

一.经典示例,泛型函数```swift// T代表类型,也可以是其他字符T1, T2, E等等func swapValue(_ a: inout T, _ b: inout T) { (a, b) = (b, a)}

Swift之defer关键字

defer说是关键字并不合适,应该说是defer语句,应为使用的时候,一般都是如下defer { ...}defer语句:用来定义以任何方式(抛错误,return等)离开代码块前必须要执行的代码

Swift之错误/异常处理

一.自定义错误类型,使用do catch处理可能抛出的异常```swift// 1.枚举必须是遵守Error协议,如果换成类也必须要遵守Errorenum SomeError: Error { case illegalArg(String)...

Swift之Self

‘Self’ is only available in a protocol or as the result of a method in a class