愚蠢的记忆管理问题令我难过

Dam*_*ien 0 iphone memory-management objective-c

我有一个属性定义为:

@property(nonatomic, retain) UITableView *settingsTableView;
Run Code Online (Sandbox Code Playgroud)

然后在我的viewDidLoad方法中我有:

self.settingsTableView = [[[UITableView alloc] initWithFrame:tableFrame style:UITableViewStyleGrouped] autorelease];
[self.view addSubview:self.settingsTableView];
[self.settingsTableView release];
Run Code Online (Sandbox Code Playgroud)

然后在视图控制器的dealloc方法中我有:

[settingsTableView release];
Run Code Online (Sandbox Code Playgroud)

当我尝试从dealloc中释放时,我收到一条"消息发送到deallocated instance".我开始猜测自己,有人看到我做过什么愚蠢的事吗?

真的很感激这一个的帮助!

cob*_*bal 6

你正在呼唤release你已经拥有的物体autorelease.只是摆脱线

[self.settingsTableView release];
Run Code Online (Sandbox Code Playgroud)

你应该好.

请注意,您应该在dealloc方法中保留该版本,因为属性调用会保留,但不会释放.