init(paramName: ParamType)
という名前の型の Swift インターフェイスで表示される場所Type
では、構文 でそれを呼び出しますType(paramName: paramValue)
。これは、Swift プログラミング言語の初期化に関する章の一番上にあります。Swift を使用した Cocoa 開発に取り掛かる前に、この章を読むことをお勧めします。
また読む価値があるのは、Using Swift with Cocoa and Objective-C の Initialization に関するセクションです。これは上記を繰り返し、ObjC 初期化子とファクトリ メソッドが Swift 初期化子にどのように自動的にマップされるかについての一般的なルールも提供します。イニシャライザおよび/またはファクトリ クラス メソッド、それは Swift イニシャライザにマップされ、構文 で呼び出します。Foo
initWithBar:
fooWithBar:
init(bar:)
Foo(bar: someBarValue)
そう:
utterance.voice = AVSpeechSynthesisVoice(language: "en-au") // g'day, mate
この特定のイニシャライザは形式であることに注意してください。これはinit!
、基礎となる ObjC コードが nil を返すことができること、および Swift がイニシャライザ呼び出しの結果をImplicitly Unwrapped Optionalでラップすることを意味します。AVSpeechUtterance.voice
オプション (nil 値を持つものを含む) を受け入れることができるので、問題はありません。しかし、それが変更された場合、または nil 以外の音声を明示的に必要とする API を処理する必要がある場合は、そのオプションをチェックする必要があります。例えば:
if let voice = AVSpeechSynthesisVoice(language: "en-au") {
// do something with voice
} else {
// pick another one, maybe?
}