欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS Swift創(chuàng)建代理協(xié)議的多種方式示例

 更新時間:2017年12月15日 15:21:42   作者:LinXunFeng  
這篇文章主要給大家介紹了關(guān)于iOS Swift創(chuàng)建代理協(xié)議的多種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。

前言

本文主要給大家介紹了iOS Swift創(chuàng)建代理協(xié)議的各種方式,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

假如有一個類為 LXFView,現(xiàn)在要為這個類創(chuàng)建一個代理協(xié)議,我們該如何做呢?

首先,代理協(xié)議的命名方式:類名 + Delegatev

protocol LXFViewDelegate {
 func view(_ view: LXFView)
}

當我們創(chuàng)建的協(xié)議遵守其它協(xié)議的情況下,只是這樣寫并不會報錯,接下來我們在LXFView中添加一個代理屬性,為避免循環(huán)引用,代理屬性需要用weak修飾

class LXFPageView: UIView { 
 weak var delegate: LXFViewDelegate? 
}

此時就報錯了,提示如下

'weak' may only be applied to class and class-bound protocol types, not 'LXFViewDelegate'


意思是weak只能修飾一個類或者類綁定協(xié)議的類型

正如提示一樣,我們當前的代理并非是一個類或者類綁定協(xié)議的類型

當前我們這個協(xié)議不僅可以被類遵守,還可以被結(jié)構(gòu)體和枚舉所遵守(這里不演示了),這無法達到weak的要求,那怎么辦呢?

解決辦法有兩個:

辦法1

直接在協(xié)議的后面寫上【: class】或者【: NSObjectProtocol】

protocol LXFPageViewDelegate: class
// 或者
protocol LXFPageViewDelegate: NSObjectProtocol

這種方式下推薦【: class】,相比之下更為輕量級

辦法2

在protocol前面加上【@objc】,表示objc類型的協(xié)議

@objc protocol LXFPageViewDelegate

這種方式下的優(yōu)點是協(xié)議中的方法不強制實現(xiàn)

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:

相關(guān)文章

  • NSString屬性何時用strong何時用copy?

    NSString屬性何時用strong何時用copy?

    相信各位iOS開發(fā)者們都考慮過這個問題,平時寫NSString的屬性時都用copy,那strong要何時用呢?下面這篇文章就來看一下什么時候應該用copy,什么時候應該用strong。有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • 淺析iOS中視頻播放的幾種方案

    淺析iOS中視頻播放的幾種方案

    還記得剛學iOS的時候嗎?那個時候驚訝于各種牛逼的功能只需要幾句簡單的代碼就可以完成。視頻播放也是這樣,IOS中視頻播放有好幾種方式,這篇文章就給大家整理這幾種方案優(yōu)缺點與實現(xiàn)過程。
    2016-08-08
  • 僅幾行iOS代碼限制TextField輸入長度

    僅幾行iOS代碼限制TextField輸入長度

    這篇文章主要為大家詳細介紹了通過幾行iOS代碼限制TextField輸入長度的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • IOS中內(nèi)存管理那些事

    IOS中內(nèi)存管理那些事

    這篇文章主要介紹了IOS中內(nèi)存管理那些事的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • iOS基于 UILabel實現(xiàn)文字添加描邊功能

    iOS基于 UILabel實現(xiàn)文字添加描邊功能

    這篇文章主要介紹了iOS基于 UILabel實現(xiàn)文字添加描邊功能,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10
  • iOS開發(fā)中導航控制器的基本使用教程

    iOS開發(fā)中導航控制器的基本使用教程

    這篇文章主要介紹了iOS開發(fā)中導航控制器的基本使用教程,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2015-11-11
  • 詳解iOS中UIView的layoutSubviews子視圖布局方法使用

    詳解iOS中UIView的layoutSubviews子視圖布局方法使用

    這篇文章主要介紹了iOS中UIView的layoutSubviews子視圖布局方法使用,文中舉了一個layoutSubviews在iPad橫豎屏切換時被調(diào)用用來重新布局的實例,需要的朋友可以參考下
    2016-04-04
  • 淺談iOS開發(fā)中static變量的三大作用

    淺談iOS開發(fā)中static變量的三大作用

    下面小編就為大家?guī)硪黄獪\談iOS開發(fā)中static變量的三大作用。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Swift實現(xiàn)iOS應用中短信驗證碼倒計時功能的實例分享

    Swift實現(xiàn)iOS應用中短信驗證碼倒計時功能的實例分享

    這篇文章主要介紹了Swift實現(xiàn)iOS應用中短信驗證碼倒計時功能的實例分享,開啟和關(guān)閉倒計時功能的步驟實現(xiàn)比較關(guān)鍵,需要的朋友可以參考下
    2016-04-04
  • iOS如何將字符串中特定后的字變成紅色

    iOS如何將字符串中特定后的字變成紅色

    這篇文章主要介紹了iOS將字符串中特定后的字變成紅色的實例代碼,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-07-07

最新評論