有没有办法将类别添加到您无法访问其头文件的类?
出于测试目的,我想向 中添加一个类别UITableViewCellDeleteConfirmationControl
,但该类(据我所知)是私有框架的一部分。
我怎样才能做到这一点?
详细说明(根据 mihirios 的要求):
我正在尝试扩展 Frank 测试框架以模拟点击当您尝试删除UITableViewCell
. Franktap
向UIControl
. 出于某种原因,Frank 通常点击控件的方式不适用于UITableViewCellDeleteConfirmationControl
类(哪些子类UIControl
)。
我已经创建了一个解决方法。UITableViewCell
我使用以下方法添加了一个类别。
- (BOOL)confirmDeletion {
if (![self showingDeleteConfirmation]) {
return NO;
}
UITableView *tableView = (UITableView *)[self superview];
id <UITableViewDataSource> dataSource = [tableView dataSource];
NSIndexPath *indexPath = [tableView indexPathForCell:self];
[dataSource tableView:tableView
commitEditingStyle:UITableViewCellEditingStyleDelete
forRowAtIndexPath:indexPath];
return YES;
}
这将找到表的数据源并调用其tableView:commitEditingStyle:forRowAtIndexPath:
方法,(根据文档UITableView
)当用户点击确认按钮时系统会执行此操作。
这行得通,但我更愿意UITableViewCellDeleteConfirmationControl
通过向它添加一个方法来使其看起来像一个可点击的按钮tap
,覆盖弗兰克的默认方法。该tap
方法将找到包含确认按钮的单元格,然后调用[cell confirmDeletion]
.
当我尝试为 声明一个类别时UITableViewCellDeleteConfirmationControl
,编译器抱怨它“无法解析接口 'UITableViewCellDeleteConfirmationControl'”。
当我尝试使用某人使用类转储生成的头文件时,链接器抱怨它找不到符号_OBJC_CLASS_$_UITableViewCellDeleteConfirmationControl。