2017-05-05 10 views
0

私は持っているのでデータを格納する必要があります。レストラン名、そのレストランのカテゴリ(文字列の配列)、各カテゴリの項目の配列、および配列の各項目の番号。相続人は、私がクラス内でクラスを作成する

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 
} 

持っているもの私は誰かがどのようにこれを構造体に私に言うことができ、これは、これを行うための最善の方法であるとは思いません。

+0

あなたの質問は明らかではありません。あなたは何に問題がありますか? – rmaddy

+0

numberOfCarbs @rmaddyから名前を分ける – Johnd

+0

あなたが投稿したコードが既にそれをしているので、何も分かりません。 – rmaddy

答えて

0

カテゴリごとに項目の配列があるとします。その場合、カテゴリは文字列の配列であってはなりません。カテゴリの配列でなければなりません。

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

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

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

- コメント内の質問への答えで編集 -

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] 
+0

すべての質問を申し訳ありませんが、私はこれを 'currentRestaurant = menuArray [indexPath.row] currentCell?.textLabel!.text = currentRestaurant.name'としましたが、何も名前@DanielTのテーブルビューに表示されません。 – Johnd

関連する問題