質問は本当に簡単です。 私は保持サイクルを検出することを知っていますが、次の例ではサイクルを保持しているかどうかを知りたいと思います。スイフト - 自生していないサイクルを保持していますか?
MainManager.sound.player.speak("1", didFinish: {
MainManager.sound.player.speak("3", didFinish: {
MainManager.sound.player.speak("4", didFinish: {
})
})
})
MainManager
強いREFにplayer
クラスを維持sound
強いREFにsound
を保つシングルトンクラスである、と。
話すの実装()
private var speechSynthesizer:AVSpeechSynthesizer?
private var speechDidFinishCompletion:CompletionVoid? = nil
func speak(_ stringToSpeak:String, didFinish:CompletionVoid? = nil)
{
if speechSynthesizer == nil
{
speechSynthesizer = AVSpeechSynthesizer()
speechSynthesizer?.delegate = self
}
speechDidFinishCompletion = didFinish
let speechUtterance = AVSpeechUtterance(string: stringToSpeak)
speechSynthesizer!.speak(speechUtterance)
}
func speechSynthesizer(_ synthesizer: AVSpeechSynthesizer, didFinish utterance: AVSpeechUtterance)
{
speechDidFinishCompletion?()
}
あなたは 'speak'メソッドの実装を投稿してもらえますか? –
サイクルを正確に保持しますか?物事の見た目では、静的メンバーを指しているだけです。より多くの文脈を提供できる場合は、最も役立ちます。 – Hamish
私はちょうどあなたが見てplsを取ることができる質問を編集する? –