Size: a a a

2020 November 24

AB

Anatoliy Bogdanov in SwiftBook
привет!
пытаюсь тут заюзать либу для нетворка.
вот кусок либы, с которой я получаю данные. Как правильно это скастить к нужному классу с Codable протоколом?

Сейчас возвращается из этого ретурна __NSSingleEntryDictionaryI
источник
2020 November 25

Д

Дмитрий in SwiftBook
Alex Mos
Всем привет, как делать такой показ контроллера в приложении ?
Так возьми, посмотри. Телеграм опенсурс
источник

F

Faridka in SwiftBook
Anatoliy Bogdanov
привет!
пытаюсь тут заюзать либу для нетворка.
вот кусок либы, с которой я получаю данные. Как правильно это скастить к нужному классу с Codable протоколом?

Сейчас возвращается из этого ретурна __NSSingleEntryDictionaryI
extension Data {
   
func decoded<T: Decodable>(_ type: T.Type) -> T? {
       
let json = JSONDecoder()
       
do {
           
let jsonData = try json.decode(type.self, from: self)
           
return jsonData
       }
catch {
           print(NSString(data:
self, encoding: 4) ?? "")
           print("Error to encode model \(T.
self) (weight: \(self) to data: " + error.localizedDescription)
           
return nil
       }
   }
}
источник

S

Sasha in SwiftBook
let data = try JSONDecoder().decode(YOUR_MODEL.self, from: Data(json.utf8))
источник

S

Sasha in SwiftBook
Anatoliy Bogdanov
привет!
пытаюсь тут заюзать либу для нетворка.
вот кусок либы, с которой я получаю данные. Как правильно это скастить к нужному классу с Codable протоколом?

Сейчас возвращается из этого ретурна __NSSingleEntryDictionaryI
<<
источник

F

Faridka in SwiftBook
использование let model = data.decoded(Codable.self)
источник

A

Anykeyman in SwiftBook
Господа, вопрос может и не по теме, но был может у кого опыт продвижения приложения на iOS? На андройд хорошо дал трафик 4pda. А вот для iOS какие каналы посоветуете?
источник

AB

Anatoliy Bogdanov in SwiftBook
Faridka
extension Data {
   
func decoded<T: Decodable>(_ type: T.Type) -> T? {
       
let json = JSONDecoder()
       
do {
           
let jsonData = try json.decode(type.self, from: self)
           
return jsonData
       }
catch {
           print(NSString(data:
self, encoding: 4) ?? "")
           print("Error to encode model \(T.
self) (weight: \(self) to data: " + error.localizedDescription)
           
return nil
       }
   }
}
даже Data object не могу из этого получить( чет под вечер вообще котелок не варит
источник

F

Faridka in SwiftBook
Anatoliy Bogdanov
даже Data object не могу из этого получить( чет под вечер вообще котелок не варит
Покажи код
источник

AB

Anatoliy Bogdanov in SwiftBook
Faridka
Покажи код
Да показывать нечего особо. Получаю в методе протокола AnyObject. Че с ним делать дальше - не оч понимаю
источник

AT

Andrey Torlopov in SwiftBook
ну кастить можно. Главное понимать че там прилетело.
источник

AB

Anatoliy Bogdanov in SwiftBook
print(этого обжекта дает вот)

{
   players =     (
               {
           classId = 2;
           id = 1;
           locationId = 6;
           name = Desaring;
           userId = 1;
       },
               {
           classId = 2;
           id = 2;
           locationId = 6;
           name = Desaring;
           userId = 1;
       }
   );
}
источник

F

Faridka in SwiftBook
У меня такое ощущение, что тебе прилетает data, то ее конвертируешь в String (ну или эта либа), потом ты это снова конвертируешь в data и пытаешься распарсить
источник

AB

Anatoliy Bogdanov in SwiftBook
Faridka
У меня такое ощущение, что тебе прилетает data, то ее конвертируешь в String (ну или эта либа), потом ты это снова конвертируешь в data и пытаешься распарсить
вот все что делает либа
источник

F

Faridka in SwiftBook
AnyObject не очень хорошо использовать
источник

AB

Anatoliy Bogdanov in SwiftBook
Faridka
AnyObject не очень хорошо использовать
а string в json проще сконвертить?
источник

F

Faridka in SwiftBook
private func dictForJSONString<T: Decodable>(_ type: T.Type, jsonStr: String?) -> T? {
guard let jsonStr = jsonStr, let data = jsonStr.data(using: String.Encoding.utf8) else return nil
let decoder = JSONDecoder()
do {
return try? decoder.decode(type.self, from data)
}
}
источник

AB

Anatoliy Bogdanov in SwiftBook
вроде справился через String. Спасибо!
источник

F

Faridka in SwiftBook
использование dictForJSONString(НазваниеCodableМодели.self, jsonStr: стринга)
источник

F

Faridka in SwiftBook
И тебе будет возвращаться не AnyObject, а тип, который ты указываешь в type
источник