Xcode并没有为捕获强大的自我而发出警告

时间:2014-05-20 11:45:51

标签: ios xcode

我有一个块导致一些问题。通常Xcode通过在行[self method]旁边抛出警告来向我显示可能发生的问题,但是现在它不起作用。

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    PNTabCell *collectionViewCell = [collectionView dequeueReusableCellWithReuseIdentifier:@"PNTabCell" forIndexPath:indexPath];

    collectionViewCell.didPressedCloseButton = ^()
    {
        [self didCloseTab];
    };

    return collectionViewCell;
}

但我的问题是如何自动启用潜在泄漏线的警告通知[自我方法]

2 个答案:

答案 0 :(得分:0)

捕捉强大的自我不是问题。创建保留周期是一个问题。这会创建一个保留周期吗?看起来不像。它只是一个链标记.FilePathAsActive-> block-> self。一旦您调用的方法完成,self将被释放。所以似乎没有任何理由要发出警告。

答案 1 :(得分:0)

对我而言,这看起来不像是一个保留周期,所以我认为不需要警告。

我不认为Xcode可以默认使用正常的警告系统(黄色警告)来确定所有保留周期,而且我不认为你可以做到这一点。

但您可以尝试不时运行分析仪。它非常强大。转到产品 - >分析。这将对您的代码进行静态分析,并将检测可能的内存泄漏,死存储,不在视图生命周期方法中调用super等。看看https://developer.apple.com/library/ios/recipes/xcode_help-source_editor/Analyze/Analyze.html

您还可以按照此处的说明尝试将分析仪更新为更新版本:http://clang-analyzer.llvm.org/xcode.html