まず、私はARCを使用していると言わなければならないので、retainはオプションではありません。オブジェクトのクラスはNSViewController型で、2つのNSTimerといくつかのテキストフィールドとボタンがあります。奇妙なことは、2つのタイマーが無効にされると、オブジェクトが解放されているように見えるということです。これは問題になることがあります。一時停止または再開する必要がある場合があります。つまり、無効化する必要があるため、参照が失われ、オブジェクトへのメッセージがEXC BAD ACCESSをスローします。Cocoa:オブジェクトが自動リースされていないときに取得する
メモリ管理やARCにはあまり慣れていませんが、タイマーによっては参照が失われるのはなぜですか?つまり、無効になったからといって、私はもうオブジェクトが必要ないわけではありません。
私はタイマーをインスタンス変数とプロパティとして宣言しようとしましたが、何も変わりませんでした。
私が本当に必要とするのは、両方のタイマが無効になっている場合でも、参照を保持しないことです。私は間違って何をしていますか?
"デリゲート"ではなく "ターゲット"を意味します。 –
これは有望だと思います。だから私の他のクラス(このオブジェクトを作成するもの)は、このオブジェクトのヘッダファイル内に宣言する必要がありますか?そして、私はそれを強固な財産にするためにどのような譲渡をすべきですか? – Elbimio
@Francis McGrew私はまだ問題があります。クラスを(非原子的で強力な)プロパティとして宣言しました。問題はクラスのいくつかのインスタンスが必要なことです。私が2番目のインスタンスを作成すると、前の1つでNSTimerを再起動すると、不正アクセスがスローされます。私は最初のものか何かを上書きしているが、それは独立しているはずであると想像する。 – Elbimio