Я установил файл pod для диаграмм, и теперь я получаю ошибки при использовании Range - PullRequest
0 голосов
/ 16 мая 2019

Я установил файл pod для Charts, и теперь компилятор выдает мне ошибки, связанные с использованием Range.

extension StringProtocol where Index == String.Index {
    func index(of string: Self, options: String.CompareOptions = []) -> Index? {
        return range(of: string, options: options)?.lowerBound
    }
    func endIndex(of string: Self, options: String.CompareOptions = []) -> Index? {
        return range(of: string, options: options)?.upperBound
    }
    func indexes(of string: Self, options: String.CompareOptions = []) -> [Index] {
        var result: [Index] = []
        var startIndex = self.startIndex
        while startIndex < endIndex,
            let range = self[startIndex...].range(of: string, options: options) {
                result.append(range.lowerBound)
                startIndex = range.lowerBound < range.upperBound ? range.upperBound :
                    index(range.lowerBound, offsetBy: 1, limitedBy: endIndex) ?? endIndex
        }
        return result
    }
    func ranges(of string: Self, options: String.CompareOptions = []) -> [Range] {
        var result: [Range<Index>] = []
        var startIndex = self.startIndex
        while startIndex < endIndex,
            let range = self[startIndex...].range(of: string, options: options) {
                result.append(range)
                startIndex = range.lowerBound < range.upperBound ? range.upperBound :
                    index(range.lowerBound, offsetBy: 1, limitedBy: endIndex) ?? endIndex
        }
        return result
    }
}

Я не ожидаю ошибок, однако я получаю эти ошибки, которых не было до установки библиотеки диаграмм:

Ссылка на универсальный тип 'Range' требует аргументов в <...>

Range 'неоднозначен для поиска типов в этом контексте

  1. Найден этот кандидат (Swift.Range)
  2. Найден этот кандидат (Charts.Range)

1 Ответ

0 голосов
/ 16 мая 2019

Это произошло из-за того, что у Charts есть класс Range (как вы можете видеть здесь ). Я получаю ту же ошибку компиляции при использовании вашего кода в моем проекте с использованием диаграмм.

Строка, не компилируемая (а для меня есть только одна):

func ranges(of string: Self, options: String.CompareOptions = []) -> [Range] {

Но я могу исправить это, просто применив то же исправление, что и в этом функционале, то есть изменив его на:

func ranges(of string: Self, options: String.CompareOptions = []) -> [Range<Index>] {
...