Имя поля Protobuf, которое содержит слово "Id", превращает его в "ID", когда генерирует модель.pb.swift.
Я пытаюсь использовать swift-protobuf:
$ protoc --version
libprotoc 3.3.0
$ protoc-gen-swift --version
protoc-gen-swift 0.9.904
я имею Test.proto
файл, который мне нужно конвертировать в Test.pb.swift
:
syntax = "proto2";
message Test {
optional int64 TestId = 1 [default = 0];
}
Для этого я использую:
$ protoc --swift_opt=Visibility=Public --swift_out=./ ./Test.proto
Он генерирует длинный файл.pb.swift:
public struct Test: SwiftProtobuf.Message {
public static let protoMessageName: String = "Test"
public var testID: Int64 {
get {return _testID ?? 0}
set {_testID = newValue}
}
/// Returns true if `testID` has been explicitly set.
....
Итак, почему TestId
конвертировано в testID
например, почему Id
с большой буквы ID
? Как исправить или избежать этого поведения с использованием заглавных букв?
1 ответ
Особый ответ был найден в репозитории apple / swift-protobuf в # 491. Добавьте "id" в список заглавных имен.
Итак, как я понимаю, теперь мне нужно переименовать все мои идентификаторы или идентификаторы в "ID".