将Swift 3与XCode 8.1(8B62)一起使用
我有一个名为Category
的类,我在另一个类中引用它:Foo(Category.self)
。但是,Swift编译器会出现以下错误:Generic parameter 'T' could not be inferred
。检查课程表明,Swift认为我指的是typealias Category - OpaquePointer
,它是一些内置的类型。有关此类型的更多信息,请访问:https://developer.apple.com/reference/objectivec/category。
据我所知,编译器应该支持当前模块中的符号。我如何向编译器表明我想在我的模块中使用该类?这段代码显然打破了XCode 8B62的最新更新。
答案 0 :(得分:0)
尝试用你自己的另一个打败这个类型:
MyCategory
现在,只要编译器误解了您的意图,您就可以使用Category
而不是类别。当然,只要编译器知道你想要什么,你仍然可以使用abc
。另外,我建议在代码中避免使用与Objective-C / Swift关键字过于相似的类型名称。
或者,您可以使用目标名称限定类型名称。例如,如果您的目标(或模块)被称为abc.Category
,则使用{{1}}。
答案 1 :(得分:0)
这是project.pbxproj的一个问题。先前的合并冲突缺少一些引用,这些引用使编译器无法识别文件中的符号。我不得不删除对该文件的引用,并再次将其添加为新文件。