我创建了一个类 (MyClass),需要它的多个实例,每个实例都包含多个计时器、文本字段和标签。由于 ARC,当计时器失效时,目标就会被释放,但有时我会让它们失效并重新启动它们,所以我不能让它们释放。因此,我转到 AppDelegate(这是创建 MyClass 实例的类)并将 MyClass 声明为强属性。 @property (strong) MyClass *myInstance;
这部分解决了问题,每当我创建另一个实例时,前一个实例就会丢失它的引用,并且如果我尝试在旧实例中重新启动 NSTimer,我访问错误。如果我重新启动最后计时器,就没有问题。
我相信,由于 myInstance 是一种属性,每当我创建一个新属性时,AppDelegate 都会重写旧的属性,从而丢失旧的引用。我需要能够保留强属性,但以某种方式使其对每个实例独立工作,或者找到另一种方法使 myInstance 成为强引用,而不必是属性。
最佳答案
将您的实例放入 NSSet 或 NSArray 等容器中。
关于cocoa - 独立重用已声明的强大属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8857460/