2017-10-22 1 views
1

、:我々はタイトルとアイコンが含まれている辞書の配列を持っているスウィフト - 辞書スタイル構造化データを格納するときのような構造体または一般的に辞書

let menuItems = [ 
    [ 
     "title": "View Profile", 
     "icon": "iconSideProfile" 
    ], 
    [ 
     "title": "Invite Friends", 
     "icon": "iconSideHeart" 
    ], 
    [ 
     "title": "Settings", 
     "icon": "iconSideSettings" 
    ], 
    [ 
     "title": "Help", 
     "icon": "iconSideHelp" 
    ], 
    [ 
     "title": "Logout", 
     "icon": "iconSideLogout" 
    ] 
] 

、それは辞書を格納するために、より良い習慣です辞書や構造体として?

struct MenuItem { 
    let title: String 
    let icon: String 
} 

let menuItems = [ 
    MenuItem(title: "View Profile", icon: "iconSideProfile"), 
    ... 
] 

明示的辞書はいくつかのケースでは、このキーが含まれていることを言うことはありません意味するデータをよりよく定義されているということで構造体に格納する利点など

それともこれですあまりにも無駄な資源?

+0

なぜ構造体を使用するのが辞書を使うより無駄だと思いますか? *無駄なリソースはどれくらいですか? –

+0

私は、辞書と比較して構造体を使用する上でオーバーヘッドが増えると思いますので、メモリリソースが無駄になります。それとも彼らは似ていますか? – DJDMorrison

+2

辞書では、各メニュー項目に4つの文字列を格納しています。構造体では、各メニュー項目の2つの文字列です。あなたは間違いなくここで 'struct'を使うべきです。メモリのより効率的な使用でさえも、より強いタイプなので、それを使用するべきです。 – Hamish

答えて

0

structを使用してメモリリソースが不安なときに、1つの点を明確にするだけです。構造体は渡された型の値をコピーします。 クラス(参照型)とは異なり、メモリヒープには格納されません。

だから、structを使用してください、それはApple自身がお勧めします。

関連する問題