关于内存泄漏:xcode 4.2 Message from Analyze tool | 珊瑚贝

xcode 4.2 Message from Analyze tool


对 Xcode 4.2 中来自分析命令的消息有点困惑。它抱怨实例变量 activityView.

enter

分析工具在 [self startRefresh:NULL] 行上抱怨有关 activityView 的潜在泄漏。

  • activityView 是一个实例变量,是合成的
  • 我在 dealloc() 中发布 activityView
  • 据我了解,当使用 setter 时(隐式通过 self.activityView),之前的值会被释放,对吧?
  • 那么,我应该如何阅读来自分析工具的警告?或者我需要什么改变?

    谢谢。

    • 尝试我的答案中给出的两种解决方案,看看分析器如何反应。
    • 我假设您的意思是说 activityView 是一个@property,而不仅仅是一个实例变量,因为您还说它是合成的。


    假设@property 有retain 属性,setter 将保留这个新的活动视图,所以你仍然负责alloc/init 中的1 个计数。

    所以你可以这样做:

    1
    self.activityView = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] autorelease];

    只需自动释放新实例以平衡分配/初始化。

    分析器不会警告您关于 activityView 的先前值。它警告您有关新实例的警告,该实例在您的 alloc/init 和 @property (retain) 之后实际上有 2 个保留计数。


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

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

    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_8891.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
    0
    分享到:
    没有账号? 忘记密码?