【问题标题】:UIWebview becomes zombies in didReceiveMemoryWarningUIWebview 在 didReceiveMemoryWarning 中变成僵尸
【发布时间】:2012-05-22 18:55:46
【问题描述】:

我有一个通过 IB 连接到我的UIViewController 的 uiwebview。 在controller.h中,我定义了

@property (nonatomic, unsafe_unretained) IBOutlet UIWebView *myUIWebView;

我正在为 iOS 4.3 编译,所以我需要 unsafe_unretained(否则我会使用弱)

我已将 UIWebView 的委托设置为 IB 中的 UIViewController。

如果控制器在未显示的情况下获得didReceiveMemoryWarning(即我在下一个屏幕上),则在 [super didReceiveMemoryWarning] 之前的 webView 正常(指向有效的 webView),并在调用后立即成为僵尸.这是正常的吗? 我读过 因为它现在是僵尸,所以我不能在控制器 dealloc 中将它的委托设置为 nil。
因此,如果它是僵尸是“正常的”,我应该在 dealloc 中将委托设置为 nil 吗?

谢谢

【问题讨论】:

    标签: iphone xcode uiwebview


    【解决方案1】:

    viewWillUnloadviewDidUnload 中将delegate 设置为nil-

    - (void)viewWillUnload {
        [webView setDelegate:nil];
    }
    

    【讨论】:

    • hmmm... 但是如果我在 dealloc 中将委托设置为 nil,它仍然会被设置...我已经检查过,当我“取消堆叠”控制器时不会调用 viewWillUnload(当我'完成购买过程并返回主屏幕)
    • oups... 如果我不将委托设置为零
    猜你喜欢
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多