【问题标题】:IBOutlet UIWebView retainCountIBOutlet UIWebView retainCount
【发布时间】:2011-04-04 06:58:04
【问题描述】:

我有一个视图控制器,其中我在 IB 中创建了 UIwebView。

IBOutlet UIWebView *webView;

@property (nonatomic, retain) IBOutlet UIWebView *webView;

@synthesize webView;

这个 webView 在 vi​​ewDidLoad 中有 retainCount = 2。为什么?

谢谢

【问题讨论】:

    标签: iphone uiwebview iboutlet retaincount


    【解决方案1】:

    我的猜测是因为它被你的类保留在 webView 属性中,并且被它的父视图保留在 subviews 数组中。

    【讨论】:

    • 是的,我觉得你是对的,如果我改成@property (nonatomic, assign) IBOutlet UIWebView *webView;retainCount = 1。什么是正确的方式?
    • 您可以使用保留,这样您可以确保您的 webView 不会被释放,例如,如果您决定出于任何原因将其从超级视图中删除。只要记住在适当的地方释放它(可能在'viewDidUnload'中,你可以在其中执行'self.webView = nil',然后setter会为你释放它)。
    • 对不起,我不太明白,所以我应该在 viewDidUnload 中使用 retain 并将 self.webView 设置为 nil,其实我遇到了和这里描述的一样的问题:stackoverflow.com/questions/2950907/uiwebview-memory-management ,并且可以找不到解决办法
    • 是的,您可以让 webView 属性保留 Web 视图,将该属性设置为 nil 将释放它(请记住使用 self.webView = nil 而不仅仅是 webView = nil)。您确定视图控制器和包含 Web 视图的视图控制器的视图正在正确释放吗?
    猜你喜欢
    • 2013-11-28
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    相关资源
    最近更新 更多