Structure d'une app

Bonsoir à tous,

J’ai un petit soucis au niveau d’une structure d’une app pour un exercice.

Alors le truc c’est que je récupère d’un JSON, un array de différent type (Livre, DVD, Cassette)
Je dois avoir obligatoirement les 3 classes.
Je voudrais savoir si c’était possible de récupéré ce genre de chose parce que pour l’instant ce que j’ai fait c’est que j’ai créer un objet « Item » qui regroupe toute les caractéristique des objets mais maintenant quand je veux aller plus loin je me rend compte que je dois récupérer un array avec les 3 types d’objets différent.

Je sais pas si je suis très clair :sweat_smile:
Si quelqu’un à déjà rencontré se genre de chose et pourrai m’aiguiller sur une structure ?

Merci d’avance

Hello @nessimhalfon

Est-ce que tu pourrais poster un exemple du JSON ? (Pas besoin de tout le fichier JSON, mais juste pour que l’on puisse se rendre compte des données que tu récupères).

Ensuite, je pense que tu peux soit avoir une seule classe mais en gérant un type, ou alors, 3 classes différentes, en fonction de ce que tu veux faire.

Bonne journée,

Alexandre

Merci pour la réponse rapide @Alexandre
Alors voici un exemple du JSON :

« devices »: [
{
« id »: 1,
« name »: "Livre ",
« pages »: 250,
« ebook »: « No »,
« type »: « Book »
},
{
« id »: 2,
« name »: "DVD - Film ",
« Time »: 120,
« type »: « DVD »
}
]

On m’oblige à utiliser les 3 classes que j’ai mentionné dans mon ancien message.

J’utilise Codable pour récupérer mon JSON
Et j’ai fait une Class parente avec les propriété partager (id, name, type) mais je bloque parce que je récupère la class parente est donc je n’est pas accès au autre propriété

Je sais pas si je suis sur la bonne voie :sweat_smile:

Bonjour,

ce que j’ai compris c’est que tu as une class Parent, mais tu n’arrives pas à récupérer les class filles

Si c’est le cas, il suffit de créer une class fille, perso je le fais avec des structures, mais ça devrait marcher également avec les class

struct Devices : Codable {
id : Int,
type : Book / Dvd,
}

struct Book : Codable {
name : String,
pages : Int
}

struct Dvd : Codable {
name : String,
time : Int
}

est-ce que j’ai bien répondu à ta question ?

Merci pour la réponse mais c’est pas vraiment ce que je souhaitais faire.

Ce que j’ai fait finalement c’est que j’ai créer une classe mère DeviceType regroupant toutes propriétés commune a mes différents type de devices .
Puis j’ai créer les class enfants qui hérites de la classe DeviceType.

D’un autre coté j’ai créer une classe Device, qui elle regroupe toutes les propriétés des différents type avec des optionnels pour les propriétés spécifique car je récupéré mon JSON en array de Device.

Puis finalement dans ma fonction prépare en fonction de chaque Type j’envoi les données de l’objet en question dans son ViewController.

Voila ça marche je sais pas si c’est la meilleur façon de procéder, si je trouve mieux je reviendrai l’expliquer du mieux que je peu :sweat_smile: