最新国产好看的视频,伊人天堂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開(kāi)源一個(gè)簡(jiǎn)單的訂餐app UI框架

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

    這篇文章主要介紹了iOS開(kāi)源一個(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)揭開(kāi)Pods依賴庫(kù)創(chuàng)建過(guò)程的神秘面紗
    2016-09-09
  • iOS Swift控制器轉(zhuǎn)場(chǎng)動(dòng)畫(huà)示例代碼

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

    這篇文章主要給大家介紹了關(guān)于iOS Swift控制器轉(zhuǎn)場(chǎng)動(dòng)畫(huà)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位iOS開(kāi)發(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ì)模式開(kāi)發(fā)中對(duì)建造者模式的運(yùn)用實(shí)例

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

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

最新評(píng)論

永善县| 巩义市| 蓬溪县| 自贡市| 南涧| 玉门市| 永清县| 佳木斯市| 镇巴县| 色达县| 阜阳市| 裕民县| 胶南市| 华亭县| 汝城县| 垫江县| 萨迦县| 宜州市| 高台县| 全州县| 嘉鱼县| 神农架林区| 叙永县| 桓仁| 天气| 邵武市| 信丰县| 萨嘎县| 信阳市| 苍山县| 广昌县| 乐陵市| 榆社县| 措美县| 杨浦区| 泾阳县| 枞阳县| 长兴县| 马尔康县| 上栗县| 西乌|