Peut-on faire un tableau dans une classe

Je peux transformer ceci : Marque (nom: "AUDI", modele: "RS3", modele2: "RS5",modele3: "RS6", image: "logo-audi",like: false),

J’aimerais faire un seul modele comme cela : Marque (nom: "AUDI", modele: ["RS3","RS5","RS6"] , image: "logo-audi",like: false),

Mais ça ne fonctionne pas auriez vous une solution ? Le contexte est plusieurs TableView dans une TableViewController

Merci d’avance

Answered by Claude31 in 699014022

Mais ça ne fonctionne pas

Ceci ne donne aucune information!

Pouvez vous dire exactement:

  • comment avez vous défini Marque (struct)
  • ce que vous avez essayé (le code)
  • ce que vous obtenez
  • ce que vous vouliez

Note: quand vous postez sur le forum, choisissez un tag qui soit pertinent. Votre question ne semble pas se référer aux Search ads

Only if these boards were only private to paying developers with at least one app in the store or development!

Don't be cheap this is what you're looking for - https://searchads.apple.com

import Foundation
struct Brand: Codable {
    let name: String
    let model: [String]
    let image: String
    let like: Bool
}

let sample = """
{
   "name": "First Name",
   "model": ["CAR1", "CAR2", "CAR3"],
   "image": "some.png",
   "like": false
}

""".data(using: .utf8)!
let brand = try JSONDecoder().decode(Brand.self, from: sample)
print(brand.name)
Accepted Answer

Mais ça ne fonctionne pas

Ceci ne donne aucune information!

Pouvez vous dire exactement:

  • comment avez vous défini Marque (struct)
  • ce que vous avez essayé (le code)
  • ce que vous obtenez
  • ce que vous vouliez

Note: quand vous postez sur le forum, choisissez un tag qui soit pertinent. Votre question ne semble pas se référer aux Search ads

Ce que j'ai fait :

Ce qui ne fonctionne pas :

Comment résoudre le problème ?

J'ai réussi à afficher le tableau dans mon application :

modelLabel est de type UILabel! , faut t-il le changer ?

Encore un problème "LABEL" s'affiche au lieu de mon tableau

MON TABLEAU :

Je devrais utiliser quel tags pour ce post ?

cell.modeleLabel.text = marque.modele <-- a cette ligne j'ai une erreur : Cannot assign value of type '[String]' to type 'String' 

Le message donne l'explication:

  • cell.modeleLabel.text est de type String
  • marque.modele est de type Array de String ([String])

On ne peut pas assigner un Array à une var de type String.

Que veux tu obtenir dans le text? Tous les noms ? Si oui, il faudrait écrire:

var allModeles = ""
for model in marque.modele {     // model est un String
  if !allModeles.isEmpty {
     allModeles = ", " + allModeles     // On ajoute une virgule après le dernier nom
  }
  allModeles = allModeles + model
}
cell.modeleLabel.text = allModeles

Une façon plus concise et plus Swift:

let allModeles = arrayone.reduce("") { (text, model) in text == "" ? "\(model)" : "\(text),\(model)" }
cell.modeleLabel.text = allModeles

2 autres points:

  • pourquoi modele est il [String] et modele2, modele3 : String ?
  • Pourquoi avoir un modele "" dans modele ? Il suffirait d'avoir par exemple:
modele: ["RS3", "RS5", "RS6", "RS7", "R8"]

.

Je devrais utiliser quel tags pour ce post ?

Swift serait un bon tag.

Bonne journée.

LE RESULTAT :

TON CODE :

Ce que je souhaite c'est que dans la première cellule il y a "RS3" , ensuite dans la deuxième cellule "RS5", "RS6" dans la troisième cellule etc...

Peut-on faire un tableau dans une classe
 
 
Q