Size: a a a

iOS Developers — русскоговорящее сообщество

2021 February 03

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
я не в курсе про композиции, это что-то из музыки. я только вьюхи крашу
источник

P

Purple in iOS Developers — русскоговорящее сообщество
Denis Kim
я не в курсе про композиции, это что-то из музыки. я только вьюхи крашу
Это из ФП :)
источник

NK

Nameless King in iOS Developers — русскоговорящее сообщество
ахаха))) есть такой подход, особенно когда сложные зависимости, вот там не юзают наследование, а сразу используют композицию, благо в свифте есть протоколы и экстеншены, что еще более жизнь упрощает
да и множественного наследования в свифте нет, что как бы намекает...
источник

ST

Sergey Tszyu in iOS Developers — русскоговорящее сообщество
привет,  можете помочь в одном моменте, у меня есть вот такая структура

struct PatientEvent: Decodable {
   let patient: PatientDetail?
   let start_time: String
   let teeth_numbers: [String]?
   let doctor_finalize_comment: String?
   let clinic: DecodableClinic
   let end_time: String
   let creator_comment: String?
   let request_procedures: [ProcedureList]?
}


и такая структура процедуры:

struct ProcedureList: Decodable {
   let code: String
   let name: String
   let price: String
}


парсинг идет вот так:

let result = try JSONDecoder.make(keyDecodingStrategy: .useDefaultKeys).decode(type, from: data)


Проблема в том что если я начинаю парсить request_procedures то отрабатывает catch блок, если не парсить то все ок
источник

ST

Sergey Tszyu in iOS Developers — русскоговорящее сообщество
не могу понять в чем может быть проблема в данном случае
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
а что за ошибка в catch блоке?
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
по видимому не пришло одно из обязательных полей
источник

t

tox in iOS Developers — русскоговорящее сообщество
Sergey Tszyu
привет,  можете помочь в одном моменте, у меня есть вот такая структура

struct PatientEvent: Decodable {
   let patient: PatientDetail?
   let start_time: String
   let teeth_numbers: [String]?
   let doctor_finalize_comment: String?
   let clinic: DecodableClinic
   let end_time: String
   let creator_comment: String?
   let request_procedures: [ProcedureList]?
}


и такая структура процедуры:

struct ProcedureList: Decodable {
   let code: String
   let name: String
   let price: String
}


парсинг идет вот так:

let result = try JSONDecoder.make(keyDecodingStrategy: .useDefaultKeys).decode(type, from: data)


Проблема в том что если я начинаю парсить request_procedures то отрабатывает catch блок, если не парсить то все ок
типы не совпадают видимо
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
либо вообще не массив процедур пришел, а допустим объект-процедура
источник

t

tox in iOS Developers — русскоговорящее сообщество
попробуй временно вот так
let result = try! JSONDecoder.make(keyDecodingStrategy: .useDefaultKeys).decode(type, from: data)
источник

ST

Sergey Tszyu in iOS Developers — русскоговорящее сообщество
{"code":"процедура","name":"д11","price":"2"}
источник

t

tox in iOS Developers — русскоговорящее сообщество
и посмотри что в лог напишет
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
Sergey Tszyu
{"code":"процедура","name":"д11","price":"2"}
ты не ответил на мой первый вопрос. а прислал объект процедуры в json, хотя ожидаешь массив таких объектов
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
вырывать из контекста короче не очень клево. если бы весь json скинул сразу было бы понятно где проблема, если не хочешь сам прочитать в catch блоке
источник

ST

Sergey Tszyu in iOS Developers — русскоговорящее сообщество
минуту
источник

ST

Sergey Tszyu in iOS Developers — русскоговорящее сообщество
"request_procedures": [
         {
           "code": "ghghhuhj",
           "name": "gugygyy",
           "price": "12369"
         }
       ],
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
так, господа. есть коллекция flow layout без лишнего. UICollectionViewDelegateFlowLayout не реализует вообще никаких методов, ячейки с авторазмером. все работает на современных осях, а на iOS 11 входит в бесконечный цикл и спамит в лог ошибку бесконечно
источник

ST

Sergey Tszyu in iOS Developers — русскоговорящее сообщество
там прилетает вот такая ошибка Expected to decode Array<Any> but found a dictionary instead.", underlyingError: nil
источник

ST

Sergey Tszyu in iOS Developers — русскоговорящее сообщество
не могу понять как я должен её распарсить
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
Denis Kim
так, господа. есть коллекция flow layout без лишнего. UICollectionViewDelegateFlowLayout не реализует вообще никаких методов, ячейки с авторазмером. все работает на современных осях, а на iOS 11 входит в бесконечный цикл и спамит в лог ошибку бесконечно
если реализовать метод func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize и вернуть какое-нибудь значение, то ошибка пропадает и все работает. При этом значение игнорируется и ячейки продолжают занимать размер автоматический
источник