J'ai créé deux classes une classe Personne et une classe alimentaire. Maintenant, je fais la liste de tous les aliments consommés dans une année par une personne en particulier. Je veux imprimer tous séparés par des virgulesComment imprimer des éléments d'une classe en utilisant une variable d'une autre classe?
Voici mon code
class Food {
let name: String
var EatenBy: Person?
init(name: String){
self.name = name
}
}
Et ma classe Person est la suivante
class Person {
var name: String
var foods: [Food] = []
lazy var foodNames:() -> String = {
return ""
}
init(name: String){
self.name = name
}
func adopt(food: Food){
foods.append(food)
food.EatenBy = self
}
}
Maintenant, je veux créer différents produits alimentaires en utilisant la classe alimentaire puis attribuez-le à une personne qui les a consommés et rangez-les dans une série d'aliments.
var person = Person(name: "Test")
var pasta = Food(name: "pasta")
Quelqu'un peut me aider comment puis-je utiliser les objets créés à l'aide de classe pour l'alimentation et l'affecter à un objet créé dans la classe Person et les ajouter dans le tableau des aliments? Mon objectif final est d'imprimer tous les éléments de la matrice d'aliments en les séparant par des virgules ou des espaces ou autres, ce qui peut être facilement fait en bouclant chacun des éléments dans une boucle for.
Merci fonctionne comme j'ai requis. Merci pour le lien aussi, je vais le parcourir. –
Une autre leçon rapide est de ne pas tout faire une classe. 'Person' a du sens car chaque instance est unique; il a une identité. Mais avoir une classe 'Food' ne le fait pas. Deux instances différentes de Bean ont deux références 'eatenBy' différentes. La propriété est déjà définie en étant incluse dans l'objet Personne. c'est-à-dire, parcourir toutes les personnes pour trouver celles qui ont des haricots dans leur gamme d'aliments. 'Food' pourrait être une structure ou une énumération. –
@PriceRingo dépend de l'utilisation exacte de ces classes. Il peut être judicieux de faire de 'Food' une classe, par exemple s'il s'agissait de classes de base de données, cela aurait du sens, d'avoir une relation bidirectionnelle entre les deux classes. –