Swift中使用protocol的注意事項

2021-07-10 18:40:17 字數 512 閱讀 1785

oc中protocol是用weak和assign修飾的弱引用.swift中protocol功能被增強了,如果使用以下**就會變成強引用.

protocol testdelegate

class test: nsobject ,testdelegate

static func test()

deinit

}class test2:nsobject

}

上述**,deinit永遠不會被呼叫,因為test例項被test2例項強引用了

正確**如下

protocol testdelegate:class

class test: nsobject ,testdelegate

static func test()

deinit

}class test2:nsobject

}

把protocol修飾成class,delegate物件用weak修飾.

在swift中使用執行緒休眠

c 和php都有sleep讓執行緒休眠指定時間後再繼續執行後面的 swift中應該如何呢?首先,找一下objective c版本是怎麼做的 self performselector selector didtimeout withobject nil afterdelay 60 順便演示下取消 ns...

Swift 中使用runtime交換方法實現

在swift的viewcontroller中寫了如下 func first func second override func viewdidload 執行結果 第乙個方法。發現沒有達到我們預期的目的,同樣的 用oc實現如下 void first void second void viewdidlo...

swift中使用Codable協議實現json解析

typealias codable decodable encodable 它其實另外兩個 protocol 的集合,也就是 decodable 和 encodable。乙個用作資料解析,另乙個用作資料編碼。建立乙個實體類,只宣告幾個屬性,將它例項編碼為json字串 struct person co...