首页 > 解决方案 > 如何创建具有属于另一个结构的属性的结构数组

问题描述

我有两个结构“膳食”和“食物”我想创建一个数组数组

所以这些是我的结构

struct Meal
{
   var name : String;
   var food : [Food];
}

struct Food
{
   var name :String;
   var description : String;
}

这是我为创建数组而编写的代码:

var meals :[Meal] = [
        Meal(name:"breakfast",food : [(name:"pancakes",description:"bk1"),(name:"waffles",description:"bk2")]),
        Meal(name:"lunch",food : [(name:"pasta",description:"lunch1"),(name:"pizza",description:"lunch2")]),
        Meal(name:"dinner",food : [(name:"rice",description:"din1"),(name:"noodles",description:"din2")]),
    ];

但它给出了一个错误:“无法将类型'(名称:字符串,描述:字符串)'的值转换为预期的元素类型'食物'”。

我该如何解决?

标签: swift

解决方案


考虑一下您用于创建Food实例的语法。想想你将如何正常地创建一个。

let someFood = Food(name: "pancakes", description: "bk1")

在数组中使用相同的语法。

Meal(name: "breakfast", food: [Food(name: "pancakes", description: "bk1"), Food(name: "waffles", description: "bk2")]),

推荐阅读