【问题标题】:Is there a way of tracking whats still pointing to a object?有没有办法跟踪仍然指向对象的内容?
【发布时间】:2012-11-01 21:56:37
【问题描述】:

我一直在试图找出为什么一块内存没有被释放。我可以看到它分配,但是当我离开视图并返回时,它被重新分配。它正在分配一个笔尖,然后使用视图。

有没有办法跟踪仍然指向对象的内容?

    TPDatePickerKeyboardView *keyboard = [[[NSBundle mainBundle] loadNibNamed:@"TPDatePickerKeyboardView" owner:self options:nil] objectAtIndex:0];
    keyboard.delegate = self;
    keyboard.associatedControl = self;
    self.datePickerKeyboard = keyboard;

    self.inputView = keyboard;

我找到了 Object,但它是 UIKit 的一部分?

【问题讨论】:

  • 我不认为有办法看到这一点。但假设 self.datePickerKeyboard 和 self.inputView 保留对象,你应该在self.inputView = keyboard; 之后调用 [keyboard release](如果我说的很明显,请道歉)
  • 您在使用 ARC 吗? datPickerKeyboard 的属性是如何定义的?
  • 我正在使用 arc 并且我有一个指向键盘视图的弱指针
  • 如果您在 Instruments 中显示对象摘要并通过“类别”向下钻取到实际对象,它应该显示保留/释放历史记录。这是否提供了任何线索来说明可能仍然持有它的东西?
  • 因为它似乎与 nib 加载有关,所以我目前唯一能想到的(牵强的)想法是确保您连接到 nib 元素的任何 IBOutlets 不是顶部级对象被声明为弱。

标签: objective-c ios memory automatic-ref-counting


【解决方案1】:

在 viewWillDisappear 中尝试添加 self. datePickerKeyboard.delegate = nil;看看能不能解决这个问题。

【讨论】:

    猜你喜欢
    • 2019-12-20
    • 2023-03-22
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 2021-07-28
    • 2012-06-14
    • 1970-01-01
    相关资源
    最近更新 更多