最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

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

假如有一個(gè)類為 LXFView,現(xiàn)在要為這個(gè)類創(chuàng)建一個(gè)代理協(xié)議,我們?cè)撊绾巫瞿兀?br />

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

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

當(dāng)我們創(chuàng)建的協(xié)議遵守其它協(xié)議的情況下,只是這樣寫并不會(huì)報(bào)錯(cuò),接下來(lái)我們?cè)贚XFView中添加一個(gè)代理屬性,為避免循環(huán)引用,代理屬性需要用weak修飾

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

此時(shí)就報(bào)錯(cuò)了,提示如下

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


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

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

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

解決辦法有兩個(gè):

辦法1

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

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

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

辦法2

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

@objc protocol LXFPageViewDelegate

這種方式下的優(yōu)點(diǎn)是協(xié)議中的方法不強(qiáng)制實(shí)現(xiàn)

總結(jié)

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

您可能感興趣的文章:

相關(guān)文章

  • iOS無(wú)障礙適配西瓜視頻Voice?Over實(shí)踐示例

    iOS無(wú)障礙適配西瓜視頻Voice?Over實(shí)踐示例

    本文從研發(fā)的視角出發(fā),講述了如何使用?Voice?Over、如何適配?Voice?Over?以及適配過(guò)程中如果遇到問(wèn)題應(yīng)該如何解決。希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • iOS 漢字的拼音

    iOS 漢字的拼音

    本文通過(guò)一段代碼給代碼介紹了ios漢字的拼音知識(shí)及將漢字轉(zhuǎn)拼音的代碼,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看下吧
    2016-08-08
  • iOS如何封裝帶復(fù)制功能的UILabel示例代碼

    iOS如何封裝帶復(fù)制功能的UILabel示例代碼

    如果是在IOS的應(yīng)用方面,很多時(shí)候我們需要封裝UILabel,下面這篇文章主要給大家介紹了關(guān)于iOS如何封裝帶復(fù)制功能的UILabel的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-08-08
  • iOS開源一個(gè)簡(jiǎn)單的訂餐app UI框架

    iOS開源一個(gè)簡(jiǎn)單的訂餐app UI框架

    這篇文章主要介紹了iOS開源一個(gè)簡(jiǎn)單的訂餐app UI框架,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 詳解IOS的Automatically Sign在設(shè)備上打包

    詳解IOS的Automatically Sign在設(shè)備上打包

    本篇教程主要給大家分享了IOS的Automatically Sign如何在設(shè)備上直接打包,有需要的朋友參考學(xué)習(xí)下。
    2018-01-01
  • IOS CocoaPods詳解之制作篇

    IOS CocoaPods詳解之制作篇

    學(xué)會(huì)使用別人的Pods依賴庫(kù)以后,你一定對(duì)創(chuàng)建自己的依賴庫(kù)躍躍欲試,今天就來(lái)揭開Pods依賴庫(kù)創(chuàng)建過(guò)程的神秘面紗
    2016-09-09
  • iOS Swift控制器轉(zhuǎn)場(chǎng)動(dòng)畫示例代碼

    iOS Swift控制器轉(zhuǎn)場(chǎng)動(dòng)畫示例代碼

    這篇文章主要給大家介紹了關(guān)于iOS Swift控制器轉(zhuǎn)場(chǎng)動(dòng)畫的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位iOS開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • iPhoneX 媒體查詢適配的方法教程

    iPhoneX 媒體查詢適配的方法教程

    這篇文章主要介紹了iPhoneX 媒體查詢適配的方法教程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • iOS實(shí)現(xiàn)微信搖一搖功能

    iOS實(shí)現(xiàn)微信搖一搖功能

    這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)微信搖一搖功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • iOS App設(shè)計(jì)模式開發(fā)中對(duì)建造者模式的運(yùn)用實(shí)例

    iOS App設(shè)計(jì)模式開發(fā)中對(duì)建造者模式的運(yùn)用實(shí)例

    這篇文章主要介紹了iOS App設(shè)計(jì)模式開發(fā)中對(duì)建造者模式的運(yùn)用實(shí)例,示例代碼為傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2016-04-04

最新評(píng)論

武定县| 吴忠市| 威远县| 怀安县| 松江区| 海门市| 徐州市| 元阳县| 九寨沟县| 雷山县| 太原市| 曲周县| 台江县| 金山区| 若尔盖县| 都匀市| 鸡西市| 闸北区| 公安县| 湾仔区| 合江县| 太白县| 南皮县| 抚宁县| 犍为县| 苗栗市| 涟源市| 长沙县| 淮南市| 射阳县| 灵山县| 玛曲县| 孝昌县| 珲春市| 巫溪县| 万盛区| 合江县| 同江市| 贵州省| 衡水市| 徐闻县|