gpt4 book ai didi

objective-c - 分配/初始化 View 、添加到 subview 和返回的正确内存管理模式

转载 作者:行者123 更新时间:2023-11-28 18:44:43 24 4
gpt4 key购买 nike

我确信这类问题已经被问死了,我明白我应该做什么,但它不起作用。我的应用崩溃了:

代码如下:

    PDFViewController *cv = [[PDFViewController alloc] initWithNibName:@"PDFViewController" bundle:[NSBundle mainBundle]];
cv.view.frame = CGRectMake(0, 0, 1024, 748);

[self.view addSubview:cv.view];

现在,如果我向 cv 实例发送发布消息:

      [cv release];

我的应用程序崩溃了。如果我将它添加到自动释放池(在 alloc/init 上),也是如此。现在我担心的是:

0) 我正在分配/初始化,所以我有责任释放(或添加到自动释放池)。

1) 调用 addSubview:cv.view 增加 cv 的保留计数。

2) 我应该能够向它发送一条发布消息,因为它被 self 观察。

3) 怎么了?

TIA。

编辑解决方案

PDFViewController *cv = [[PDFViewController alloc] initWithNibName:@"PDFViewController" bundle:[NSBundle mainBundle]];
[self presentModalViewController:cv animated:YES];

最佳答案

调用 addSubview:cv.view 不会增加 cv 对象的保留计数。它确实增加了“cv.view”的保留计数,因此“self.view”仅保留“cv.view”。

关于objective-c - 分配/初始化 View 、添加到 subview 和返回的正确内存管理模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5982408/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com