ARC和局部变量

时间:2011-07-22 17:52:04

标签: iphone objective-c automatic-ref-counting

我目前正忙着将我的代码转换为ARC,并且在使用局部变量时遇到了一些麻烦。因为只要编译器认为我需要它们,它们只保存在内存中,它们通常在最后一次调用它们之后被释放。

不幸的是,我的应用程序包含一个带有自定义内容的HUD,比如UIButtons。这些选择器指向HUD本身,所以我总是得到一个EXC_BAD_ACCESS,因为控制器在实例化后被释放。

除了在我的类标题中创建实例变量之外,还有其他解决方案吗?

1 个答案:

答案 0 :(得分:2)

尽管将iVar放在标题中真的是一样的,但你至少可以通过在.m文件的顶部创建一个私有类来保持清洁,它定义了你可以容纳UIButtons的属性。

@interface MyClass ()
@property (nonatomic, retain) UIButton *myButton;
@end

@implementation MyClass
@synthesize myButton;

....

self.myButton = thingThatisHoldingYourButton;

// Now for the block