Атрибут "общедоступный" может использоваться только в нелокальной области
Здесь очень техническая ошибка, и Google ничего не сказал об этом.
Я добавляю Кордову в Swift Project.
Я добавил файл заголовка Bridging Header и зависящие от Кордовы зависимости, и я получил автозаполнение (классы CDV Cordva были автоматически завершены).
Все работало нормально, пока я не получил эту ошибку:
Attribute 'public' can only be used in a non-local scope
И мой проект просто освещал ошибки везде. Также тонны моих функций перестали работать.
![enter image description here]()
Любые предложения относительно того, что произошло или что я могу сделать, чтобы исправить, были бы очень благодарны
Ответы
Ответ 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.
}
}