【发布时间】:2014-08-23 10:59:53
【问题描述】:
目标-C
UIButton *tmpButton = (UIButton *)[self.view viewWithTag:tmpTag];
如何在 Swift 中做到这一点?
【问题讨论】:
目标-C
UIButton *tmpButton = (UIButton *)[self.view viewWithTag:tmpTag];
如何在 Swift 中做到这一点?
【问题讨论】:
在 Swift 中,这看起来像这样:
var tmpButton = self.view.viewWithTag(tmpTag) as? UIButton
它或多或少是一种直接翻译,只是演员表位于表达式的另一端。
【讨论】:
var sasaButton = self.view.viewWithTag(22) as UIButton,它和你的一样,只是没有?。那么,你能告诉我你的代码中的?是什么吗?
? 使变量可选,以防标记视图不存在。如果您 100% 确定标记视图存在,那么删除 ? 就可以了。
var tmpButton = self.view.viewWithTag(0) as? UIButtonprint(tmpButton) // Output: nil
UIButton吗?
将 Swifty 作为 C 转换为 Swift 转换器,并使用此 link 转换您的代码并获得答案。
Objective-C 代码
UIButton *tmpButton = (UIButton *)[self.view viewWithTag:tmpTag];
Swift 代码
let tmpButton = view.viewWithTag(tmpTag) as? UIButton
【讨论】:
self。我检查了它在没有self 的情况下是否仍然有效,它确实有效。根据 Ray Wenderlich 的风格指南,只要编译器接受 self,就应该省略它