将发件人作为id或特定的类投射到IBAction
我看到两种方法来处理IBAction语句中的发件人对象。 第一个看起来像这样:
-(IBAction)buttonPressed:(id)sender{ UIButton*someButton=(UIButton*)sender; //do something with someButton.tag or whatever }
另一个似乎更容易
-(IBAction)buttonPressed:(UIButton*)sender{ //do something with sender.tag or whatever }
我通常select版本2.如果你知道只有一个button将被发送到这个方法,那么有什么特别的理由可以select一种风格呢?
我可以看到哪里版本1是好的,如果有什么东西可以是一个发件人,如button,或开关或滑块等,但如果你正在寻找像tag
UIButton
属性,它不会有太大的区别,如果你的发件人不是一个UIButton
。 所以版本2似乎更直截了当。
只是以为我会看到如果我错过了一个明显的理由更喜欢版本1。
我看到使用第二个版本没有问题。 我通常使用第二个版本,只使用第一个版本,如果发件人可能是多个types的对象。 然后,如果方法需要知道什么types的对象,该方法可以在将发送者转换为特定types之前查询发送者。
更频繁的我发现没有必要访问发件人,所以我只是使用:
- (IBAction)buttonPressed { // Do something. }
- 什么时候应该从closures的ViewController类中观察持续的Model类调用removeObserver:forKeyPath?
- 在UIDocumentInteractionController中定制“电子邮件”操作
- iOS令牌字段
- 小Xcode Beta带来的惊喜🎁:核心图形可编码一致性
- 如何将RxSwift与MVVM模式一起使用-第2部分
- 带有RxSwift的MVVM:用于假人的KickStarter
- iOS获取Parse Facebook好友名字和分数
- 我允许我的iPhone应用程序提供与第三方支付网关的付款吗?
- 如何从UIWebView上的JavaScript调用Objective-C方法?