肇鑫的技术博客

业精于勤,荒于嬉

苹果的老六行为

苹果有时候还是很老六的。比如在系统声音设置中,有一个声音叫“Heroine”,也就是女英雄。

lao6

那么如果你想在自己的应用中使用它,可以通过NSSound调用

class Foo {
    private var sound: NSSound?
    
    func playSound() {
        sound = NSSound(named: "Heroine")
        sound?.play()
    }
}

但是这个声音应用运行时并不会发出。这是因为传统上,这段声音的名字叫“Hero”,大概是出于平权的考虑,苹果将它改名为“Heroine”了。但是程序代码里的,没改,还是叫“Hero”。所以,想在自己的应用里使用它,必须使用

 sound = NSSound(named: "Hero")

这可是连文档里都没有的。只能自己搜索加猜测才能摸索到。

苹果还真是个老六。如果你真想平权,还想保证兼容性。那你让"Hero"和"Heroine"可以同时使用就可以了啊。这么做很难吗?