ios關於點擊事件selector傳參的問題,看似簡單卻容易混淆(已解決),iosselector

來源:互聯網
上載者:User

ios關於點擊事件selector傳參的問題,看似簡單卻容易混淆(已解決),iosselector

最近在使用selector時經常思考的問題,

給UIButton 添加點擊事件,可以在selector後加“:”將button作為參數傳入方法中,

今天用

[NSTimerscheduledTimerWithTimeInterval:1target:selfselector:@selector(rotateAction:)userInfo:nilrepeats:NO];

寫了一個方法

#pragma mark - rotateAction

- (void)rotateAction:(ViewController *)controller{

//    UIView * view = [controller.view.subviews lastObject];

    NSLog(@"%@",controller);

//    view.backgroundColor = [UIColor yellowColor];

}


看起來類似的寫法卻無法獲得self(控制器),我分別列印了一下self和controller結果發現地址不一樣,所以肯定不是一個對象,我就在思考是為什麼,再仔細看列印結果終於發現問題所在

2015-06-21 15:35:22.806 test仿射變換[10698:1998925] <ViewController: 0x7ff64db38a50>

2015-06-21 15:35:23.807 test仿射變換[10698:1998925] <__NSCFTimer: 0x7ff64d8486d0>



顯而易見二者不是同一個類,所以selector傳入的參數是:點擊事件的調用者例如:button,slider,progress,nstimer等等

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.