gpt4 book ai didi

Objective-C 类型别名优先于 Swift 类

转载 作者:行者123 更新时间:2023-12-04 16:57:28 25 4
gpt4 key购买 nike

使用 Swift 3 和 XCode 8.1 (8B62)

我有一个类(class)叫 Category我在另一个类中引用了它:Foo(Category.self) .但是,Swift 编译器给出了以下错误:Generic parameter 'T' could not be inferred .检查类(class)表明 Swift 认为我指的是 typealias Category - OpaquePointer这是一些内置的类型别名。更多关于 typealias 的信息在这里:https://developer.apple.com/reference/objectivec/category .

据我了解,编译器应该支持当前模块中的符号。我如何向编译器表明我想要我的模块中的类?这段代码显然在 XCode 8B62 的最新更新中被破坏了。

最佳答案

尝试用另一个你自己的 typealias 打败这个 typealias:

typealias MyCategory = Category

您现在可以使用 MyCategory而不是 Category 编译器误解您的意图的任何地方。当然,您仍然可以使用 Category只要编译器知道你想要什么。顺便说一句,我建议避免在我的代码中使用与 Objective-C/Swift 关键字太相似的类型名称。

或者,您可以使用目标名称限定类型名称。例如,如果您的目标(或模块)名为 abc ,然后使用 abc.Category .

关于Objective-C 类型别名优先于 Swift 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40566591/

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