1.用timer的话 vc没有了 timer也跟着释放了 如果不释放 那就成循环引用了
2.用本地通知的话,只能设置固定时间为触发时间,不能像定时器那样每隔一段时间执行一次
PHPz2017-04-18 09:53:38
GCDのタイマーを使用することをお勧めします。 GCD のタイマーは NSTimer とは異なります。NSTimer は RunLoop の影響を受けますが、RunLoop も GCD に基づいているため、GCD のタイマーは影響を受けません。
リーリー黄舟2017-04-18 09:53:38
使い方はあなた次第です。具体的な状況を分析してください。
私の個人的なベスト プラクティスは Runloop
です。新しいクラスを作成し、クラスがインスタンスを初期化した後に新しいスレッドを作成し、このスレッドの Runloop
メッセージをリッスンし、シグナル ソースを追加して実装します。これにより、いくつかの NSTimer
エラーやその他の問題を回避できます。
2 つ目は CADisplayLink
の監視です。もちろん、CADisplayLink
の監視には、負荷が高いため「フレームドロップ」が発生する可能性があります。
ちなみに、音频服务
を登録しないとバックグラウンドで実装するのは簡単ではありません。