从StoryBoard加载的自定义UITableViewCell没有得到dealloc&ed; ed

时间:2015-08-09 08:59:01

标签: ios objective-c uitableview storyboard

这是我的代码:

__weak CurrentViewController *weakSelf = self;
if (indexPath.row == 0) //Name Cell
{
    static NSString *CellIdentifier = @"NameCell";
    NameCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    __weak NameCell *weakCell = cell;
    cell.NameDidChangeBlock = ^(){
        weakSelf.zoneName = weakCell.NameTextField.text;
    };

    return cell;
}
else if (indexPath.row == 1) //Number Cell
{
    static NSString *CellIdentifier = @"NumberCell";        
    NumberCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    cell.someBlock = ^(){
        [weakSelf.navigationController popViewControllerAnimated:YES];
    };

    return cell;
}

" NameCell"也不是" NumberCell" dealloc方法被调用。 我在CurrentViewController的故事板中设计并将这些自定义单元设置为顶级对象。

CurrentViewController的dealloc正在调用,但自定义单元格的dealloc不会被调用。 我在仪器中看到,每次创建一个CurrentViewController实例时,自定义单元格的retainCount都会增加。

以下是自定义单元格的标题:

//NameCell.h:
@property(nonatomic, weak)IBOutlet UITextField *NameTextField;
@property (nonatomic, copy)NameDidChange NameDidChangeBlock;

//NumberCell.h
@property(nonatomic, weak)Manager *manager;
@property(nonatomic, weak)IBOutlet AKPickerView *pickerView;
@property(nonatomic, strong)NSArray *numbersArray;
@property(nonatomic)int selectedZoneNumber;
@property (weak, nonatomic) IBOutlet UIView *selectionBoxView;
@property (nonatomic, copy)some someBlock;

这里的任何帮助将不胜感激。 谢谢!

修改 在CurrentViewController获取dealloc后,我的tableView本身没有得到dealloc&ed; ed。 试图登录UITableView类别。 仍然,猜测,为什么我的tableView会在我的viewController已经发布时不会被释放。似乎太奇怪了。

1 个答案:

答案 0 :(得分:0)

罪魁祸首就是这个家伙:ShowKit

我们已将ShowKit集成到我们的远程支持应用程序中。

从我们的应用程序中删除他们的SDK确实解决了上面提到的dealloc问题(不仅仅是上面的问题,但还有比我们想象的更多的问题)。

我认为ShowKit SDK确实会获取我们应用程序视图的副本并且不会将其返回,并且可能是复制视图的保留计数根本不会变为0。

OR

SDK可能会覆盖我应用的UIWindow,并且在不需要时它们不会发布它。

这纯粹是我的猜测,但不确定。他们必须回答它。

我希望有人觉得这很有帮助。