【问题标题】:Dealloc when using Storyboard in Xcode 4.2.1在 Xcode 4.2.1 中使用 Storyboard 时的 Dealloc
【发布时间】:2012-03-17 00:43:31
【问题描述】:

我在iPhone - dealloc - Release vs. nil 找到了一个有点相关的问题,但它没有回答我的问题。

我在故事板中创建了一个按钮、一个UIScrollview 和一个标签。当我 Ctrl 将对象拖到 ViewController.h 时,他们创建了这个:

@interface ViewController : UIViewController{

    __weak IBOutlet UIScrollView *scroller;
}

@property (weak, nonatomic) IBOutlet UIButton *goButton;

@property (weak, nonatomic) IBOutlet UILabel *label;

@property (weak, nonatomic) IBOutlet UIScrollView *scroller;

- (IBAction)pressGo:(id)sender;

@end

在 ViewController.m 的顶部我有:

@implementation ViewController

@synthesize goButton;

@synthesize label;

@synthesize scroller;

它在viewDidUnload 中创建了:

[self setGoButton:nil];

[self setScroller:nil];

[self setLabel:nil];

scroller = nil;

[super viewDidUnload];

全部自动创建。我见过很多对deallocrelease 的引用。 这段代码,预制的东西,会防止内存泄漏吗?或者我必须添加dealloc? 对于我所犯的任何错误,我深表歉意……我是新手。

【问题讨论】:

标签: objective-c xcode4.2 null dealloc


【解决方案1】:

如果 IBOutlet 被标记为弱,则无需在 viewDidLoad 中将它们设置为 nil。 如果您使用 ARC 进行编译,则也无需编写 dealloc,无论如何,如果您编写任何 dealloc 或 release 语句,编译器本身都会给您错误。

使用 Xcode 4 ARC 作为默认选项,如果您确保您的代码是内存安全的。

【讨论】:

  • 那么弱对象就不用释放了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-21
  • 1970-01-01
相关资源
最近更新 更多