0

私はクラス(MyClass)を作成し、いくつかのインスタンスを必要とし、それぞれにいくつかのタイマー、テキストフィールド、ラベルを保持します。 ARCのために、ターゲットは無効にされたときに割り当てが解除されていましたが、時には無効にして再起動して割り当てを解除することはできません。そこで私は自分のAppDelegate(MyClassのインスタンスを作成するクラス)に行き、MyClassを強力なプロパティとして宣言しました。 @property (strong) MyClass *myInstance;これは部分的に問題を起こします。別のインスタンスを作成すると、前のインスタンスが参照を失い、古いインスタンスでNSTimerを再起動しようとするとBAD ACCESSになります。 最後にタイマーを再起動しても問題ありません。宣言された強力なプロパティを個別に再利用

myInstanceはプロパティなので、新しいものを作成するたびにAppDelegateは古いものを書き換え、古い参照を失うと思います。私は強固な財産を保つことができなければならないが、何とか各インスタンスごとに独立して機能するようにするか、プロパティでなくてもmyInstanceを強力な参照にする別の方法を見つける必要がある。

+0

とにかくこのデザインはかなり壊れやすいです。 NSTimersは無効化され再開されるものではありません。コールバックは、「一時停止」する予定のときにはティックを無視するか、新しいポーズを作成するだけでよいでしょう。 – Chuck

+0

@チャック、ダニを無視するのはどういう意味ですか?そしてどうやって? – Elbimio

+0

@Elbimio:タイマーを無効にする代わりに、起動させてください。それが終わったら、一時停止しているかどうかを確認し、そうでない場合は定期的なものだけを実行します。 –

答えて

3

NSSetまたはNSArrayのようなコンテナにインスタンスを配置します。

+0

ブリリアント。ありがとう! – Elbimio

関連する問題