【问题标题】:Should I release NSData dataWithContentsOfURL?我应该发布 NSData dataWithContentsOfURL 吗?
【发布时间】:2011-06-28 23:42:10
【问题描述】:

关于内存管理的问题如下:

NSData *returnData = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]                                                options:0                                                     error:&err];

我们在这里看到我们的分配量激增,但不确定我是否应该在将其移出后释放此内存。

我在尝试发布时遇到异常,所以这里不了解内部原理。

提前致谢!

【问题讨论】:

    标签: ios memory-management


    【解决方案1】:

    没有。根据命名约定返回autoreleased。

    您可以查看内存管理编程指南:http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html

    【讨论】:

      【解决方案2】:

      不,您不需要释放它。 dataWithContentsOfURL: 方法返回一个 autorelease 对象。如果你没有明确地保留它,它会自动释放。

      自动,也就是说,只要您当前的线程正确设置了NSAutoreleasePool。所有autorelease 对象在其封闭的NSAutoreleasePool 被耗尽时被释放。如果您在此代码中发现了泄漏,则可能是相应的池没有足够频繁地被耗尽(或者可能根本没有)。

      【讨论】:

        猜你喜欢
        • 2011-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-21
        相关资源
        最近更新 更多