Size: a a a

2021 November 09

N

Nocto in SwiftBook
а зачем стринговый id? UUID защищает от случайного дублирования идентификаторов
источник

.

.juss in SwiftBook
и обернут  @Published var contracts: [ContractDatum] = []
источник

.

.juss in SwiftBook
ну это да касяк - может в этом и причина в целом
источник

G

Give Five Give Seven in SwiftBook
А точно защищает? Часто задавался этим вопросом. Понятно, что вероятность совпадения маленькая. но вроде коллизии могут случаться.
источник

N

Nocto in SwiftBook
плюс добавление .id(UUID()) триггерит публикацию изменений VM, лучше обновлять данные модели через свойство VM
источник

N

Nocto in SwiftBook
там оочень маленькая вероятность
источник

N

Nocto in SwiftBook
намного ниже, чем вероятность ошибки при ручном присваивании
источник

N

Nocto in SwiftBook
и есть внутренняя обработка выдачи ID, которая проводит проверки, не был ли выдан ID ранее
источник

G

Give Five Give Seven in SwiftBook
Тоже непонятно, зачем генерировать каждый раз новый UUID(). ID используется для diff механизма. Такой прием можно использовать разве что с огромным List, чтобы не тратить ресурсы на расчет разницы и генерировать заново.
источник

N

Nocto in SwiftBook
в данном примере набор данных приходит из сети и количество заранее неизвестно, а для ограниченного количества элементов да, может быть эффективнее написать свой алгоритм
источник

.

.juss in SwiftBook
// MARK: - ContractDatum
struct ContractDatum: Codable, Hashable, Identifiable {
   
var id = UUID()
   
let contract: String?
   
let contractDate: String?
}
источник

.

.juss in SwiftBook
если так делать - то данные вообще не хотят приходить )
источник

N

Nocto in SwiftBook
значит проблема с отправкой сообщения о том, что данные изменились из view model
источник

G

Give Five Give Seven in SwiftBook
Погоди, а где вообще класс, который ответственный за подгрузку данных? Либо я его не заметил...
источник

.

.juss in SwiftBook
class HomeViewModel: ObservableObject {
   @Published
var firstName: String = "-"
   @Published
var surName: String = "-"
   @Published
var secondName: String = "-"
   @Published
var contracts: [ContractDatum] = []
   @Published
var balance: String = "-"
   @Published
var startPeriod: String = "-"
   @Published
var endPeriod: String = "-"
   @Published
var monthPayment: String = "-"
   @Published
var recomendetPayment: Int = 0
   
   @Published
var isLoading = false
   
   
func getData() {
       
let app_topken = UserDefaults.standard.value(forKey: "authToken")
       
       
if ((app_topken) != nil) {
           
self.isLoading = true
           HomeService().getUserInfo(app_token: app_topken
as! String) { UserInfoResponse in
               DispatchQueue.main.async {
                   
self.firstName = UserInfoResponse.firstName ?? "-"
                   
self.secondName = UserInfoResponse.secondName ?? "-"
                   
self.surName = UserInfoResponse.surName ?? "-"
                   
self.contracts = UserInfoResponse.contractData ?? []

                   
self.isLoading = false
               }
           }
       }
   }
}
источник

.

.juss in SwiftBook
класс
источник

АБ

Антон Барабанов... in SwiftBook
Всем привет. Может кто подскажет ? Переустанавливал OS предложило установить High Sierra установил но сейчас не могу поставить Monterey. Скачал Monterey с apple.com установка прошла успешно. Но все ровно загрузилась Sierra. Во вкладке обновлении ПО новых версий нет. Может кто сталкивался ?
источник

G

Give Five Give Seven in SwiftBook
А где переменная модели во View? Скинь скрин. плиз
источник

.

.juss in SwiftBook
сек
источник

.

.juss in SwiftBook
Model
источник