Закрытые статические переменные в Swift не компилируются в AppCode, но в Xcode - PullRequest
0 голосов
/ 24 января 2019

У меня есть класс, в котором у меня есть частная статическая константа:

class A {

    private static let MY_CONSTANT = 1000

    func setUp (xAxis:Charts.XAxis) {
        ...
    }
}

Также в этом классе у меня есть метод (setUp), внутри этого метода я создаю другой класс, который использует эту константу:

func setUp (xAxis:Charts.XAxis) {

    class HistogramReadLenghtFormateer:IAxisValueFormatter {
        func stringForValue(_ value: Double, axis: AxisBase?) -> String {

            let lowIndex = Int(value) / A.MY_CONSTANT
            let topIndex = (Int(value) + A.MY_CONSTANT) / A.MY_CONSTANT
            return String(lowIndex) + "K" + "-" + String(topIndex) + "K"
        }
    }
    let histogramReadLenghtFormateer = HistogramReadLenghtFormateer()

    xAxis.labelPosition = .bottom
    xAxis.labelFont = .systemFont(ofSize: 6)
    xAxis.granularity = Double(A.MY_CONSTANT)
    xAxis.labelCount = 7
    xAxis.valueFormatter = histogramReadLenghtFormateer
}

Что ж, похоже, что с Xcode все в порядке, но AppCode жалуется:

Cannon Access to MY_CONSTANT.Он закрыт в A

Я знаю, что он закрыт, но класс определен внутри метода класса A.

Но еще более интригующе то, что один компилятор жалуется, а другойодин не делает.

Я думаю, это из-за каких-то настроек.Есть идеи, где это изменить?

1 Ответ

0 голосов
/ 18 марта 2019

То, что вы видите, не является ошибкой компилятора, это часть собственного анализа AppCode, что в данном случае неверно. (К сожалению, я создал проблему для вас и постараюсь исправить ее в ближайшее время.)

Вы по-прежнему сможете компилировать и запускать свой проект. Если это не так, то возникает другая проблема.

...