- 跟戴銘學iOS編程:理順核心知識點
- 戴銘
- 203字
- 2024-01-19 15:19:46
1.2.3 類型擦除
但是在使用關聯類型的時候需要注意,當聲明一個使用了關聯屬性的協議對象作為屬性時,會先出現no initializers的提示,接著會提示error: protocol 'HTNState' can only be used as a generic constraint because it has Self or associated type requirements。其意思是HTNState協議只能作為泛型約束使用,因為它包含了Self或關聯類型。
代碼如下:
class stateDelegate<T> { var state: T var delegate: HTNState }
那么這個問題該如何處理呢?答案是通過類型擦除來解決,添加一個中間層在代碼中,讓這個抽象的類型具體化。實際上在Swift的標準庫里就有對類型擦除的運用,比如AnySequence協議。
推薦閱讀
- Cocos2d Cross-Platform Game Development Cookbook(Second Edition)
- Java程序設計(慕課版)
- Docker技術入門與實戰(第3版)
- JavaScript 網頁編程從入門到精通 (清華社"視頻大講堂"大系·網絡開發視頻大講堂)
- 算法大爆炸:面試通關步步為營
- Easy Web Development with WaveMaker
- MySQL數據庫管理與開發(慕課版)
- Hands-On Automation Testing with Java for Beginners
- RabbitMQ Essentials
- HTML5 APP開發從入門到精通(微課精編版)
- 一本書講透Java線程:原理與實踐
- Emgu CV Essentials
- C++ Fundamentals
- SQL Server 2008中文版項目教程(第3版)
- 測試架構師修煉之道:從測試工程師到測試架構師