为什么我的自定义 class 无法识别 swift 扩展名? (即字符串)

Why does my custom class not recognize swift extensions? (i.e. String)

我有一个字符串扩展,我在其中定义了一个函数来计算两个不同字符串之间的 DamerauLevenshtein 距离。添加以下代码时:

var result = "Hello"
result.damerauLevenshteinTo("Hellow") 

在任何其他 class 中,例如 UIViewController、UITableViewController 等,代码可以正常编译。 一旦我尝试将它添加到我自己定义为 class CustomClass: AnyObject 的 class 中,我就会收到以下错误消息。

Value of type String has no member 'damerauLevenshteinTo'

我错过了什么?谢谢!

Update 复制粘贴整个 class 并扩展到一个空项目编译很棒...将它移动到旧项目仍然给我错误无论我的尝试。

更新 2 看来我不能在这个 class 中使用任何自定义 classes 或 subclasses。嗯...

更新 3 删除文件并在新文件中粘贴 class 大约第三次后错误消失了...欢呼

您是如何添加带有扩展名的 class 的?我在我的项目中添加了一些 classes,其中包括扩展,其余代码无法识别这些扩展。看来这是因为我使用 "Create folder references" 选项而不是 "Create groups" 选项添加了文件。我删除了我添加的内容,然后再次添加它们并选择了 "Create groups" 选项。这为我修好了。

我没有追究为什么使用引用可能会导致这种行为,因为我本来打算用 "Create groups" 选项添加它们。