关于iphone:在哪里解除pickerview? | 珊瑚贝

Where to dealloc pickerview?


在模态视图中,我有一个在 viewDidLoad.

中分配和初始化的 UIPickerView

它在 dealloc 中与此视图中使用的其他对象一起被释放。

这是释放我的选择器的错误方式吗?为什么在模式视图被关闭后需要访问它,因为错误消息似乎在暗示?

僵尸日志错误是:

1
[UIPickerView release]: message sent to deallocated instance 0x5a441

相关代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
(void)viewDidLoad
{
    [super viewDidLoad];

    //navigation bar stuff here

    mcPickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 244, 320, 216)];
    mcPickerView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;

    // setup the data source and delegate for this picker
    mcPickerDataSource = [[MCPickerDataSource alloc] init];
    mcPickerView.dataSource = mcPickerDataSource;
    mcPickerView.delegate = mcPickerDataSource;

    mcPickerView.showsSelectionIndicator = YES;
    [self.view addSubview:mcPickerView];
}

(void)dealloc
{
    [mc dealloc];
    [mcPickerView dealloc];
    [mcPickerDataSource dealloc];
    [mcVal release];
    [super dealloc];
}

  • 请显示您的 viewDidLoad 和 dealloc 代码


viewDidLoad 中分配的任何内容:应该在 viewDidUnload 中释放,而不是释放。这是因为 viewDidLoad 和 viewDidUnload 在对象的生命周期中可能会被调用多次。 Dealloc 在对象的生命周期中只被调用一次。


在你的dealloc 方法中,你的[mcPickerView dealloc] 可能也为你dealloc\\’d mcPickerDataSource,因为mcPickerView 持有对mcPickerDataSource 的引用。更改您的 dealloc 方法以释放除 super 之外的所有内容应该可以解决问题。


你应该只在 super 上调用 dealloc。其他一切都应该释放。

这个答案将解释原因:
iPhone SDK:Dealloc 与 Release?


来源:https://www.codenong.com/6237844/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9844.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?