Это мои протофайлы:
message ChatJoinReq {
string other_user_identifier = 1;
int32 message_request_count = 2;
}
message ConversationListReq {
Location location = 1;
uint32 conversation_request_count = 2;
}
message Location {
double latitude = 1;
double longitude = 2;
}
Вот как я создаю запрос для ChatJoinReq
объекта
var chatJoinReq = Benji_Client_ChatJoinReq()
chatJoinReq.otherUserIdentifier = "ullam"
chatJoinReq.messageRequestCount = 1
let data = try! chatJoinReq.serializedData()
Я очень удивлен, что это оценивается как true:
let message = try! ConversationListReq(serializedData: data)
print(message.hasLocation) // true
Как?Это происходит для некоторых имен (включая «ульлам»).Когда я изменяю имя на «test», оно вылетает, потому что не может закодировать сообщение (что хорошо! Или hasLocation должно иметь значение false).
Почему «ullam» может бытьзакодировано, и сообщение имеет свойство location
, явно установленное, в то время как имя 'test' вообще не может быть закодировано? Какая разница в имени?