gpt4 book ai didi

swift - 防止协议(protocol)方法在自动完成中出现两次

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

这比其他任何问题都更令人烦恼和表面化,但 Xcode 中的自动完成存在一些一致性问题,如果有人有解决方案,我将不胜感激。


考虑一个协议(protocol) MyProtocol,它有一个属性和一个方法:

public protocol MyProtocol {
var variable: String { get }
func method()
}

还有一个类A,它采用了MyProtocol并实现了要求以符合协议(protocol):

public class A { ... }

extension A: MyProtocol {
public var variable: String { get { return "String from A." } }

public func method() {
print("Method called.")
}
}

问题:

当访问 A 实例的成员时,协议(protocol)方法出现两次,而属性只出现一次:

如果所有内容都记录在代码中,很明显协议(protocol)属性将被隐藏,而协议(protocol)方法在自动完成中仍然可见。这同样适用于协议(protocol)方法的默认实现 - 仍然可见。

使这个问题更加特殊的另一件事是,如果一个实例A 在声明类的同一文件中创建,并且也在同一文件中访问该实例的成员,然后协议(protocol)方法从自动完成中消失:

但是,如果从另一个文件调用同一个实例(现在在全局范围内),则协议(protocol)方法会重新出现在自动完成中。

所以,我的问题是:有人知道如何从自动完成中隐藏重复的协议(protocol)方法吗?


版本:

Xcode: 7.3 (7D175)

swift :2.2

最佳答案

这似乎是一个错误。 rdar://21701167去年提交。

可能是由于:

  • 源自 Xcode 文档更新的重复项

  • 来自第 3 方 Xcode 文档插件的副本

  • 并排安装两个版本的 Xcode

这真的是任何人的猜测。这有点烦人。有时我会得到 3 或 4 个重复项。我使用了两个版本的 Xcode,并且使用了第 3 方文档插件。

关于swift - 防止协议(protocol)方法在自动完成中出现两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38332945/

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