在我的應用程式中,我目前使用一個單獨的class來存盤一堆靜態變數,我想隨時隨地訪問這些變數。
class Sounds {
static var soundInitial : Sound!
static var soundThunder : Sound!
static var soundWind : Sound!
//etc. (大約50多個)
}
這個Sounds類從未被用作實體,而是作為所有聲音效果的容器(這些聲音效果的型別是Sound--這是一個單獨的類)
我初始化所有的聲音效果。
我在viewDidLoad期間從主視圖控制器初始化所有的聲音效果:
let urlPath1 = Bundle.main.url(forResource: "art.scnassets/sounds/my_sound_file", withExtension: "mp3")
Sounds.soundInitial = Sound(url: urlPath1!, volume: 1.0)
//etc...。
然后我可以在任何時候像這樣使用它:
Sounds.soundInitial.play(numberOfLoops: -1) //無盡的回圈。
作為一個還沒有那么多經驗的程式員,我有一個非常基本的問題:
是否有更常見的方法或更好的方式來集中存盤所有的聲音變數? (我不想在視圖控制器中定義它們,因為這將給我帶來太多的變數。
我發現,我可以使用一個 在Swift中是否有一個特殊的Container Object,專門用于此類目的?
uj5u.com熱心網友回復: 你正在做的是將全域常量集中到一個命名空間中。
在Swift中是否有一個特殊的容器物件被設計用于此類目的?
是的,無案例的列舉是傳統的方式,因為它是最輕量級的,不會被意外實體化;它是 "純 "命名空間。
如果你觀看一些 Apple 視頻,你會發現他們就是這樣做的。就我個人而言,我曾經推薦使用結構體,但由于所給出的原因,我已經轉而使用列舉。
標籤:結構來實作同樣的目的。但這是否是一個更好的方法呢?
