我正在使用UISwitch子类将UISwitches添加到我的所有UITableViewCells。我使用自定义类可以将更多信息传递给UISwitch。
我在iOS 8上的错误只有:
*** -[NamedUISwitch _sendActionsForEvents:withEvent:]: message sent to deallocated instance
NamedUISwitch是我制作的自定义UISwitch:
@interface NamedUISwitch : UISwitch
@property (nonatomic, strong) NSString *specialinfo1;
@property (nonatomic, strong) NSString *specialinfo2;
@end
@implementation NamedUISwitch
@end
这就是我在cellForRowAtIndexPath方法中实现UISwitch的方法。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [[UITableViewCell alloc] init];
NamedUISwitch *switchview = [[NamedUISwitch alloc] initWithFrame:CGRectZero];
[switchview addTarget:self action:@selector(updateSwitchAtIndexPath:) forControlEvents:UIControlEventTouchUpInside];
cell.textLabel.text = ...;
switchview.nomEtablissement = ...;
switchview.tag = ...;
switchview.typeInfo = ...;
cell.accessoryView = switchview;
return cell;
}
我曾尝试使用Instruments来跟踪dealloc,但我似乎无法让它以正确的方式工作。 我该如何解决这个dealloc问题?
答案 0 :(得分:1)
您没有正确创建细胞。你需要这样的代码:
var element = document.getElementById('my_element'),
//return size as it is defined
fontSize = element.style.fontSize;
这样就可以正确地重复使用单元格,每个单元只能获得一个开关。
更好的选择是创建一个自定义表格单元格类,并且该单元格类设置自己的开关。