Подтвердить что ты не робот

Атрибут "общедоступный" может использоваться только в нелокальной области

Здесь очень техническая ошибка, и Google ничего не сказал об этом.

Я добавляю Кордову в Swift Project.

Я добавил файл заголовка Bridging Header и зависящие от Кордовы зависимости, и я получил автозаполнение (классы CDV Cordva были автоматически завершены).

Все работало нормально, пока я не получил эту ошибку:

Attribute 'public' can only be used in a non-local scope

И мой проект просто освещал ошибки везде. Также тонны моих функций перестали работать.

enter image description here

Любые предложения относительно того, что произошло или что я могу сделать, чтобы исправить, были бы очень благодарны

4b9b3361

Ответ 1

Эта ошибка появляется, если у вас есть public, объявленный в типе, который вложен внутри функции, или типы методов, объявленные в этом контексте, имеют только локальную область и, следовательно, не могут быть помечены как общедоступные. Пример:

func foo() {
    public struct Bar {        
    }
}
// Attribute 'public' can only be used in a non-local scope

Ответ 2

Для будущих читателей:

Я согласен с анализом вопроса Nate Cook, однако мой компилятор выбрасывал эту ошибку, потому что мне не хватало фигурной скобки (}) выше в файле. Например, отсутствует фигурная скобка после инструкции по умолчанию в коммутаторе. В этом случае это приведет к ошибке в строке public var URLRequest: NSURLRequest:

public enum MyEnum: SomeProtocol {
    var someVariable {
        switch self {
        case .first:
            return something
        default:
            return default
        }
    // <------- needs brace here
    public var URLRequest: NSURLRequest {
        // Code here.
    }
}