Опускание значения структуры при создании swift - PullRequest
0 голосов
/ 03 апреля 2020

rook ie здесь, это может быть простой вопрос, но допустим, у меня есть структура, которая выглядит следующим образом:

struct User: Codable, Identifiable {
  let id: String
  let firstname: String
  let lastname: String
  let age: Int
}

Это базовая c модель пользователя, но когда я создаю новый пользователь, мне в основном нужна та же структура без идентификатора:

struct UserCreate: Codable {
  let firstname: String
  let lastname: String
  let age: Int
}

Кажется довольно многословным, чтобы создать две структуры. Есть ли лучший шаблон для такого рода вещей?

Спасибо

Ответы [ 3 ]

0 голосов
/ 03 апреля 2020

Может быть, это то, что вы хотите?

 struct UserWithID: Codable, Identifiable {
  let id: String
      struct User: Codable {
      let firstname: String
      let lastname: String
      let age: Int
    }
}
0 голосов
/ 03 апреля 2020

Вы можете установить идентификатор как необязательный и использовать другой объект в User

struct User: Codable, Identifiable {
  let id: String?
  let userCreate: UserCreate
}

struct UserCreate: Codable {
  let firstname: String
  let lastname: String
  let age: Int
}

Вы можете просто установить id как необязательный и использовать этот объект

struct User: Codable, Identifiable {
  let id: String?
  let firstname: String
  let lastname: String
  let age: Int
}
0 голосов
/ 03 апреля 2020

Просто укажите значение по умолчанию для id.

let id = UUID().uuidString
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...