gpt4 book ai didi

swift - 编译器不喜欢完成处理程序中的保护语句

转载 作者:行者123 更新时间:2023-11-30 12:38:14 25 4
gpt4 key购买 nike

我正在为这个问题摸不着头脑。编辑器不喜欢它,编译器更不喜欢它 - 但他们在原因上没有达成一致。

            cardRemoveTimer = Timer.scheduledTimer(withTimeInterval: 0.3, repeats: true, block: { [weak self] (_) in
guard let self = self else {
return
}
//…
}

XCode 编辑器:条件中的模式匹配需要“case”关键字

CardDeck.swift:31:28:无法转换“CardDeck”类型的值?预期参数类型“_OptionalNilComparisonType”

我想做的就是避免强行展开 self 。为什么我不能?如果可以的话,怎样做?

最佳答案

我相信真正的问题是使用 self 作为变量名。 self 是 Swift 中的保留关键字,因此请使用其他关键字,例如 uself:

cardRemoveTimer = Timer.scheduledTimer(withTimeInterval: 0.3, repeats: true) { [weak self] _ in
guard let uself = self else { return }

// use uself
}

注意:您可以用反引号 (``) 将 self 括起来以将其用作变量名称,但我不推荐它,因为您必须在任何使用它的地方都这样做。使用另一个变量名会更容易。

关于swift - 编译器不喜欢完成处理程序中的保护语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42601984/

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