为什么" [[UIDevice currentDevice] identifierForVendor]"导致内存泄漏?

时间:2015-06-17 01:54:35

标签: ios memory-leaks

我正在使用x-code 6.3工具来分析我的应用程序,但我不明白为什么这行导致内存泄漏:

+ (NSString*)IDFV
{
    NSUUID* device_id = [[UIDevice currentDevice] identifierForVendor];// !100%
    return [device_id UUIDString];
}

我想发布一张图片,但没有足够的声誉。

iI选择了instrument-leaks-call tr​​ee,并选择“反转调用树”#9;并且隐藏了系统库'然后我得到了上面显示的泄漏代码之一,有人可以帮忙,谢谢。

1 个答案:

答案 0 :(得分:1)

它不会泄露内存

.reduce()返回一个单例 - 也就是说,对UIDevice currentDevice的每次后续调用都将返回对同一对象实例的引用。

此单例实例在第一次调用currentDevice时分配,此对象将保持分配状态,直到您的应用退出。

这显示为"泄漏" (并且在技术上是泄漏,因为物体永远不会被释放)但这是设计而无需担心。