Я впервые разрабатываю приложение для CarPlay iOS.
Здесь я получаю список станций, которые будут воспроизводиться на радио CarPlay.
Ниже приведен ответ в формате JSON….< /p>
let netwokService : NetworkService = DefaultNetworkService()
let request = RadioModel()
netwokService.request(request, completion: { [weak self] result in
switch result{
case .success(let radioStationResponse):
print("Radio station : \(radioStationResponse)")
case .failure(let errorValue):
print("Erro : \(errorValue)")
}
})
func decode(_ data: Data) throws -> RadioStationResponseModel {
let decoder = JSONDecoder()
let response = try decoder.decode(RadioStationResponseModel.self, from: data)
print("Response received :- \(response)")
return response
}
Но проблема, с которой я столкнулся, заключается в том, что я не получаю второй объект из ответа.
Мне удалось получить только первый объект. Объект разбиения на страницы я получаю как нулевой, но он имеет значение, которое мне нужно для дальнейшей работы.
Кто-нибудь может помочь мне понять, что я делаю не так.
Заранее благодарим за помощь.
// MARK: - Pagination struct Pagination: Codable { let totalResults, fromResult, toResult, perPage: Int? let currentPage, lastPage: Int? }
// MARK: - Station struct Station: Codable { let id: String? let market: Market? let name, tag, description, tagline: String? let isExclusive, isDefault: Bool? let startDate: String? let endDate: EndDate? let createdAt: String? let updatedAt: JSONNull? let links: Links? let slugs: [String]? let locations: [Location]? let transmissions: [Transmission]? let branding: Branding? let brandTag: String? let assets: Assets? }
// MARK: - Assets struct Assets: Codable { let logos: Logos? let artworks: [String]? }
// MARK: - Logos struct Logos: Codable { let app: App? let carPlay, chromeCast: [String]? let web: Web? }
enum CodingKeys: String, CodingKey { case facebookURL = "facebookUrl" case instagramURL = "instagramUrl" } }
// MARK: - Location struct Location: Codable { let city, state, postcode, timezone: String? }
enum Market: String, Codable { case genre = "genre" case metro = "metro" }
// MARK: - Transmission struct Transmission: Codable { let id: String? let type: TransmissionType? let streams: [Stream]? let band: Band? let frequency: String? }
enum Band: String, Codable { case am = "am" case dab = "dab" case fm = "fm" }
// MARK: - Stream struct Stream: Codable { let id: String? let type: StreamType? let mimeType: MIMEType? let url: String? let tritonMount: String? let bitrate: Int? let stationID: String?
enum CodingKeys: String, CodingKey { case id, type, mimeType, url, tritonMount, bitrate case stationID = "stationId" } }
enum MIMEType: String, Codable { case audioAAC = "audio/aac" case audioMPEG = "audio/mpeg" }
enum StreamType: String, Codable { case aac = "aac" case mp3 = "mp3" }
enum TransmissionType: String, Codable { case broadcast = "broadcast" case ip = "ip" }
public required init(from decoder: Decoder) throws { let container = try decoder.singleValueContainer() if !container.decodeNil() { throw DecodingError.typeMismatch(JSONNull.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Wrong type for JSONNull")) } }
public func encode(to encoder: Encoder) throws { var container = encoder.singleValueContainer() try container.encodeNil() } } [/code] Вот так я вызываю свой API и обрабатываю ответ. [code]let netwokService : NetworkService = DefaultNetworkService() let request = RadioModel() netwokService.request(request, completion: { [weak self] result in switch result{ case .success(let radioStationResponse): print("Radio station : \(radioStationResponse)") case .failure(let errorValue): print("Erro : \(errorValue)") }
})
func decode(_ data: Data) throws -> RadioStationResponseModel { let decoder = JSONDecoder() let response = try decoder.decode(RadioStationResponseModel.self, from: data) print("Response received :- \(response)") return response } [/code] Но проблема, с которой я столкнулся, заключается в том, что я не получаю второй объект из ответа. [img]https://i.sstatic.net/JfWGCN2C.png[/img]
Мне удалось получить только первый объект. Объект разбиения на страницы я получаю как нулевой, но он имеет значение, которое мне нужно для дальнейшей работы. Кто-нибудь может помочь мне понять, что я делаю не так. Заранее благодарим за помощь.
Я написал задание для класса структур данных, и мне не удается понять, как «реализовать основную функцию быстрой сортировки, которая рекурсивно сортирует подмассивы, сформированные путем разделения», что подразумевает, что рекурсия происходит в...
Я написал задание для класса структур данных, и мне не удается понять, как «реализовать основную функцию быстрой сортировки, которая рекурсивно сортирует подмассивы, сформированные путем разделения», что подразумевает, что рекурсия происходит в...
У меня есть файл Webm с одним видеопотоком, который был кодирован с VP9 (Libvpx-Vp9).
Я написал программу C ++, чтобы извлечь кадры из видеопотока и сохранить их как PNG. Это работает нормально, за исключением того, что полученные PNG отсутствуют...
Я успешно печатаю количество шестерок, троек и двоек, но не единицу, и программа выдает ошибку из-за выхода за пределы диапазона слов после того, как я возвращаю 0;
int main() { векторные слова; words.push_back( Шесть ); words.push_back( Шесть );...