Nic*_*ico 7 objective-c grand-central-dispatch ios swift
我有一些Objective-c代码,我想在swift中做同样的事情:
dispatch_block_t adjustTooltipVisibility = ^{
self.tooltipView.alpha = _tooltipVisible ? 1.0 : 0.0;
self.tooltipTipView.alpha = _tooltipVisible ? 1.0 : 0.0;
};
Run Code Online (Sandbox Code Playgroud)
到目前为止,我所能发现的dispatch_block_t是它在swift中用作dispatch_after作为闭包.所以我可以理解,但我不明白在objective-c中使用它就像这样,以及如何将此代码转换为快速代码
dispatch_block_t是Void -> Void闭包的类型别名.Swift(从版本1.2开始)并不能很好地推断出这些,所以你需要声明类型.您还需要self显式引用以访问实例属性,并且需要确保您没有创建引用循环.声明self是weak在封闭是一个安全的方法:
let adjustTooltipVisibility: dispatch_block_t = { [weak self] in
if self?._tooltipVisible == true {
self?.tooltipView.alpha = 1
self?.tooltipTipView.alpha = 1
} else {
self?.tooltipView.alpha = 0
self?.tooltipTipView.alpha = 0
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4272 次 |
| 最近记录: |