2011-05-13 295 views
0

器材显示我在下面的代码模拟器泄漏,内存泄漏

UIBarButtonItem *connectButton = [[UIBarButtonItem alloc] initWithTitle:@"Connexion" style:UIBarButtonItemStyleBordered target:self action:@selector(pushViewController)]; 

    [self.navigationItem setLeftBarButtonItem:connectButton animated:animated]; 
    [connectButton release]; 

你看到任何泄漏?谢谢

+0

它报告什么样的泄漏? – 2011-05-13 20:10:25

+0

这段代码看起来不错 - 你确定这是内存泄漏的报道吗? – occulus 2011-05-13 20:14:58

+0

泄漏对象:_NSCFType。负责任的图书馆:CoreGraphics。负责框架:CGTypeCreateInstanceWithAllocator – samir 2011-05-13 20:24:24

回答

3

泄漏向您显示对象被分配的位置而不是其中对象被泄漏的位置

虽然两者可能是相同的,但更容易发生对象泄漏是由于其他地方的额外保留或丢失释放引起的。

+0

你有一个想法,为什么是这里泄漏:self.navigationController.navigationBar.tintColor = [UIColor clearColor]; ?我已经在设备 – samir 2011-05-13 20:42:42

+0

中测试了这个,许多人在4.3中使用这个 – samir 2011-05-13 20:43:31

+2

漏报了假阳性;提交一个错误。 – bbum 2011-05-13 20:43:58

0

我没有看到您发布的代码中有任何泄漏。这就是说,几个问题:

  1. 你怎么知道这是泄漏的地方?
  2. navigationItem的吸气机会使用copy?如果是这样,那里可能会有泄漏。
+0

在仪器中的堆栈跟踪中。我没有声明navigationItem使用副本,我刚刚在我的控制器中完成self.navigationItem – samir 2011-05-13 20:26:04

+0

和我有很多泄漏时,我这样做:self.navigationController.navigationBar.tintColor = [UIColor clearColor]; – samir 2011-05-13 20:27:53

0

...在设备上?你应该在设备上检查这个。在很多情况下,您都希望使用模拟器进行这种测试。这并不代表设备本身的行为。我建议你在设备上测试一下,如果你仍然看到它回到这里。

+0

你有一个想法,为什么这里泄漏:self.navigationController.navigationBar.tintColor = [UIColor clearColor]; ?我已经在设备中测试过了。 – samir 2011-05-13 20:33:21