XCode分析仪无法正常工作

时间:2012-06-23 15:52:07

标签: xcode code-analysis analyzer

我目前正在通过iTunesU进行CS193P课程,老师多次提到Build and Analyze选项。他说,这是一个很好的工具,玩起来很有趣 所以我尝试了,并注意到它不起作用,或者我不明白它应该如何工作(我认为最后一个选项)。
我有一些内存泄漏,它根本没有警告我!我在网上看到,应该出现一个蓝色的东西告诉我这是一个漏洞,但我没有看到任何东西,虽然我正在做NSDictionary *dict = [[NSDictionary alloc] init];

它应该如何运作?从我在互联网上看到的内容,我认为它应该标志着潜在的泄漏。我做错了什么?

我正在使用XCode 3.2.5。

感谢。

更新

我认为这是一种错误 当我在NSDictionary *dict;这样的界面中声明它并初始化它(但无法释放它)时,它什么也没说。

当我在- (void) init中声明并初始化它并且不要在那里发布它时:

- (void) init {
    if(self = [super init])
        NSDictionary *dict = [[NSDictionary alloc] init];
    return self;
}

它确实发出泄漏信号。为什么?这是因为我的设置吗?这是一个错误吗?如果它是一个错误,我应该在哪里以及如何报告它?

2 个答案:

答案 0 :(得分:1)

它会向您发出警告,因为您没有取消分配它。

-(void)dealloc{
   [super dealloc]; 
   [dict dealloc];
}

它没有警告您,因为您应该能够在创建对象后立即释放它们,并且分析器的目标是提醒您代码中可能存在的泄漏。

您可以使用autorelease,也可以取消手动创建的对象。

P.S。,好奇心一点:你为什么使用Xcode 3.2.5?

不确切知道该版本是否可以,但在最新版本的Xcode中,当您运行该工具时,您可以通过一些带有解释的箭头来查看您正在解除分配的对象,类似于

答案 1 :(得分:0)

我刚刚发现重启并重新启动Xcode会将其恢复。