gpt4 book ai didi

ios - swift 中的 dispatch_block_t 相当于什么?

转载 作者:搜寻专家 更新时间:2023-10-30 22:12:08 25 4
gpt4 key购买 nike

我有一些我想理解的 objective-c 代码,以便在 swift 中执行相同的操作:

dispatch_block_t adjustTooltipVisibility = ^{
self.tooltipView.alpha = _tooltipVisible ? 1.0 : 0.0;
self.tooltipTipView.alpha = _tooltipVisible ? 1.0 : 0.0;
};

到目前为止,关于 dispatch_block_t 我能找到的所有信息是它在 swift 的 dispatch_after 中用作闭包。所以我能理解,但我不明白它在 objective-c 中的用法,以及如何将这段代码转换为 swift 代码

最佳答案

dispatch_block_tVoid -> 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
}
}

关于ios - swift 中的 dispatch_block_t 相当于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29738262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com