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