何时释放Tab栏应用程序中的对象?

时间:2011-04-28 05:39:20

标签: iphone objective-c xcode tabbar

这是我的问题here

的扩展

以下是该方案:

我有三个选项卡,其中有一个开关。当我触摸开关时,标签会更新(开或关),灯泡的图像会从一个jpg变为另一个。所以我正在使用UIImageView来改变UIImage。

#import <UIKit/UIKit.h>
@interface FirstViewController : UIViewController {
    UISwitch *switch1;
    UILabel *status1;
}

@property (nonatomic,retain) IBOutlet UISwitch *switch1;
@property (nonatomic,retain) IBOutlet UILabel *status1;
- (IBAction) switch1Change;
@end

,实施是

#import "FirstViewController.h"
@implementation FirstViewController
@synthesize switch1;
@synthesize status1;
- (IBAction) switch1Change
{
    if (switch1.on) {
        status1.text = @"ON";
        ...
    }
    else {
        status1.text = @"OFF";
        ...
    }
}

我无法理解何时释放对象。我尝试在 - (void)dealloc {}方法中给出[switch1 release]。但是当我切换标签时,应用程序崩溃了。怎么做?

1 个答案:

答案 0 :(得分:0)

dealloc中的

[switch1 release]似乎是正确的,你得到的崩溃是什么?它可能与此无关。

如果你设置一个断点,你可能会发现标签没有被取消分配;一旦被标签栏加载,它就会保持它们。此外,所有选项卡的视图控制器都在开始时加载。