2

我正在使用 HockeyApp 进行崩溃报告。我注意到只有 iOS 9.1 经常发生崩溃。当文本字段成为第一个响应者并触发设置 UITableView 委托时,就会发生崩溃。起初我很难复制,但现在我可以一直复制。我所要做的就是打开辅助功能检查器,我的应用程序就会崩溃。崩溃的原因是“原因:在当前参数寄存器中找到的选择器名称:_accessibilitySetRetainedValue:forKey:”并且崩溃是“SIGSEGV”。关于如何解决这个问题的任何想法?

4

1 回答 1

7

由于以下原因,我们遇到了类似的问题:

@property (nonatomic, strong) id<UITableViewDelegate> delegate;
@property (nonatomic, strong) UITableVIew *tableView;

...

self.delegate = newDelegate;
self.tableView.delegate = newDelegate;

原始委托被解除分配,这通常不会成为问题。但据我们所知,当启用可访问性时,其中的某些内容会assign引用原始委托,而当设置新委托时,会有一些内容试图清除该引用。哪个不存在了。

TL;DR:在将新委托分配给 tableview 之前,不要解除分配原始委托:

self.tableView.delegate = newDelegate;
self.delegate = newDelegate;
于 2015-10-26T22:21:57.347 回答