-2

那个代码对吗?它不会释放并释放它是说“超级释放 ARC 禁止”当我需要进行释放以及何时需要释放时?

#import "ImageViewController.h"

@interface ImageViewController ()
@end
@implementation ImageViewController
@synthesize imageToDisplay=_imageToDisplay;

-(IBAction)click:(id)sender
{
    if ([[sender title]isEqualToString:@"Dog"])
    {
        [_imageToDisplay setImage:[UIImage imageNamed:@"border-collie_177061-1280x1024.jpg"]];
    }
    else if ([[sender title]isEqualToString:@"FakeBook"])
    {
        [_imageToDisplay setImage:[UIImage imageNamed:@"images.jpeg"]];
    }//else if
}//click


- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

-(void)dealloc
{
    [_imageToDisplay release];
    [super dealloc];
}


@end
4

2 回答 2

0

[super dealloc]并且release在使用 ARC 时是不允许的。ARC 的目标是自动管理它,因此您无需担心它。如果您更喜欢手动释放对象,那么关闭 ARC 是可行的方法。

于 2013-08-07T17:45:43.830 回答
0

如果您使用 arc,则无法解除分配或释放某些内容。您可以在 dealloc 中将 _imageToDisplay 设置为 nil。

于 2013-08-07T17:47:33.573 回答