【问题标题】:Making a class with classes within it [closed]制作一个包含类的类[关闭]
【发布时间】:2017-05-05 15:03:30
【问题描述】:

我需要存储数据,所以我有; restaurantName、该餐厅的类别(将是字符串数组)、每个类别的项目数组以及数组中每个项目的编号。这就是我所拥有的

open class Item{
var name = String()
var numberOfCarbs = Int()
var category = String()
init(name n:String,numberOfCarbs c:Int,category t:String){
    name = n
    numberOfCarbs = c
    category = t
}

}
open class Restaurant{

var items = [Item]()
var cateogry = [String]()
var restaurantName = String()

init(restaurantName n:String,category c:[String],items i:[Item]){
    restaurantName = n
    cateogry = c
    items = i
}

我认为这不是最好的方法,有人可以告诉我如何构建它。

【问题讨论】:

  • 您的问题不清楚。你到底有什么问题?
  • 将名称与 numberOfCarbs @rmaddy 分开
  • 这并没有说明任何事情,因为您发布的代码已经做到了。

标签: arrays swift class


【解决方案1】:

您说每个类别都有一系列项目。如果是这种情况,那么类别不应该是字符串数组,而应该是类别数组。

struct Item {
    let name: String 
    let carbs: Int
}

struct Category {
    let name: String
    let items: [Item]
}

struct Restaurant {
    let name: String 
    let categories: [Category]
}

-- 在 cmets 中编辑问题的答案--

let shake = Item(name: "Shake", carbs: 20)
let fries = Item(name: "Fries", carbs: 30)

let beverages = Category(name: "Beverages", items: [shake])
let chips_fries = Category(name: "Chips & Fries", items: [fries])
let desserts = Category(name: "Desserts", items: [])
let other = Category(name: "Other Menu Items", items: [])
let sandwiches_burgers = Category(name: "Sandwiches & Burgers", items: [])
let sides = Category(name: "Sides", items: [])

let a_w = Restaurant(name: "A&W", categories: [beverages, chips_fries, desserts, other, sandwiches_burgers, sides])

let menuArray = [a_w]

【讨论】:

  • 抱歉所有问题,但我这样做了let currentRestaurant = menuArray[indexPath.row] currentCell?.textLabel!.text = currentRestaurant.name,但名称@DanielT 的表格视图中没有显示任何内容。
猜你喜欢
  • 2011-09-16
  • 2010-12-31
  • 2012-04-26
  • 1970-01-01
  • 2019-01-29
  • 2019-06-30
  • 1970-01-01
  • 1970-01-01
  • 2020-12-03
相关资源
最近更新 更多