我创建了一个类(MyClass)并需要它的几个实例,每个实例都包含几个定时器,文本字段和标签。由于ARC,当定时器失效时,目标被释放,但我有时会使它们无效以重新启动它们,所以我不能让它们解除分配。所以我去了我的AppDelegate(这是创建MyClass实例的类)并将MyClass声明为强属性。 @property (strong) MyClass *myInstance;
这部分起作用的问题是每当我创建另一个实例时,前一个实例都会丢失它的引用,如果我尝试在旧实例中重新启动NSTimer,我会得到BAD ACCESS。如果我重新启动 last 计时器,则没有问题。
我相信由于myInstance是一个属性,每当我创建一个新属性时,AppDelegate会重写旧的,丢失旧的引用。我需要能够保留强大的属性,但不知何故使它为每个实例独立工作,或者找到另一种方法使myInstance成为强引用,而不必是属性。
答案 0 :(得分:3)
将您的实例放在像NSSet或NSArray这样的容器中。