麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > iOS > 正文

iOS如何定義名為任意的變量詳解

2019-10-21 18:41:07
字體:
來源:轉載
供稿:網友

前言

本文主要介紹了關于iOSios/300112.html">定義名為任意的變量的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

需求說明

在實際的編程過程中,我們總要定制一些控件,在定制的過程里,有時喜歡自己實現部分delegate方法

// MYScrollView.m- (instancetype)init{ ... self.delegae = self; ...}- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ NSLog(@"%s 我被執行", __func__); ...}

粗看上述的代碼沒什么問題, 可是當我們的其他對象也想實現delegate怎么辦呢?

// ViewController.m- (void)viewDidLoad { ... scrollView.delegate = self; ...}- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ NSLog(@"%s 執行了ViewController里的方法,就不執行MYScrollView的方法了", __func__); ...}

實現

有的同學會在ViewController里的方法里在調用一下UIScrollView的方法,可以我們不知道MYScrollView自己實現了那些delegate方法啊,只能每個都轉發一下了.

// ViewController.m- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ [(MYScrollView *)scrollView scrollViewDidScroll:scrollView]; ...}...

這樣做是不是很累?

Objective-C是一門oop的語言,oop的特性有哪些呢:多態.

可以用這特性去解決這一問題:

* 在子類里重寫delegate方法,在ViewController里調用的delegate其實是子類自己的myDelegate.

* 然后讓父類的delegate指向自己.在子類里實現的delegate方法里調用子類的delegate的方法.

// MYScrollView.m@synthesize delegate = _myDelegate;- (instancetype)init{ ... [super setDelegate:self]; ...}// 需要掛鉤多少delegate方法就寫多少- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ NSLog(@"%s 我先執行", __func__); [self.delegate scrollViewDidScroll:scrollView];}// ViewController.m- (void)viewDidLoad { ... scrollView.delegate = self; ...}- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ NSLog(@"%s 我接著被執行了", __func__); ...}

這樣子類和ViewController里的delegate方法都被執行了.

奇巧有了,按照慣例得說說無益了.

嘗試寫個MYTableView.寫完后發現,尼瑪的DataSource的方法可以掛鉤,Delegate的卻失敗了.

// 筆者用的是tableView:cellForRowAtIndexPath: 和numberOfSectionsInTableView: 兩個方法

UITableView繼承自UIScrollView,UIScrollViewDelegate的方法卻成功了.

筆者猜測造成這樣的原因可能是UITableView內部用的是self.delegate和_dataSource去執行UITableView協議里的方法.

方法能不能成功,取決于我們看不到的apple的代碼,這個技巧還怎么去用呢.

總結

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


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美老外a级毛片 | 91福利影视 | 国产精品久久久久久久不卡 | 成年人免费高清视频 | 国产精品成人一区二区三区电影毛片 | 国产精品免费观看视频 | 久久毛片免费 | 性插视频 | 国产精品爱久久久久久久 | 国产福利视频 | 欧美性精品videofree | 久精品久久 | 成人影片在线免费观看 | 国产精品久久久久久久久久尿 | 72pao成人国产永久免费视频 | 在线观看免费视频麻豆 | 国产亚洲精品yxsp | 久久99国产精品免费网站 | av在线看网站 | 国产 日韩 亚洲 欧美 | 国产精品视频一区二区三区四区五区 | 久久成人动漫 | 国产精品视频中文字幕 | 99精品国产视频 | 蜜桃91麻豆| 久久精品国产一区二区 | 国产一区二区三区在线免费观看 | 麻豆视频国产在线观看 | 亚洲一区二区三区高清视频 | 一区二区三区欧美在线观看 | 久久经典 | 欧美a∨亚洲欧美亚洲 | 国产一区二区视频在线播放 | 免费在线观看成年人视频 | 羞羞网站在线观看入口免费 | 99极品视频| 免费黄色大片网站 | 欧美日韩国产成人在线 | 中文字幕在线亚洲精品 | 国产喷白浆10p | 性明星video另类hd |