为什么子字符串不再适用于 Swift 4?

Why won't substrings work in Swift 4 anymore?

我项目中的一个 pods 无法编译,我也不知道为什么。说实话,我从来没有处理过 String.UnicodeScalarView 所以我不知道那是什么,而且文档也不是很有帮助。他们仍在 Swift 4 文档中使用 string[subscript],但 Xcode 抱怨 subscript 已过时。有任何想法吗?

我在完全相同的地方(相同的 Mapbox 文件)遇到了完全相同的错误。我认为问题与新的子字符串类型有关,该类型与 String 类型不同,后者会在您指示的行处破坏代码。我仍在尝试理解新文档。无论如何,我做了一个平底船并尝试了以下,使用 String.UnicodescalarView (我也没有遇到过)

encodedString = String.UnicodeScalarView(encodedString[encodedString.index(after: currentIndex)..<encodedString.endIndex])

请注意,虽然这允许代码编译 运行,但它涉及解锁 pod 中的文件(以允许编辑),因此您应该谨慎使用并确保将 pod 更新为一旦 Mapbox 发布更新。这根本不是一个长期的解决方案。