我目前正忙着将我的代码转换为ARC,并且在使用局部变量时遇到了一些麻烦。因为只要编译器认为我需要它们,它们只保存在内存中,它们通常在最后一次调用它们之后被释放。
不幸的是,我的应用程序包含一个带有自定义内容的HUD,比如UIButtons。这些选择器指向HUD本身,所以我总是得到一个EXC_BAD_ACCESS,因为控制器在实例化后被释放。
除了在我的类标题中创建实例变量之外,还有其他解决方案吗?
答案 0 :(得分:2)
尽管将iVar放在标题中真的是一样的,但你至少可以通过在.m文件的顶部创建一个私有类来保持清洁,它定义了你可以容纳UIButtons的属性。
@interface MyClass ()
@property (nonatomic, retain) UIButton *myButton;
@end
@implementation MyClass
@synthesize myButton;
....
self.myButton = thingThatisHoldingYourButton;
// Now for the block