iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 为什么在Interface Builder中向UITableViewCell子类添加手势识别器会使应用程序崩溃?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个自定义的UITableViewCell子类,我正在尝试使用Interface Builder将一个捏手势识别器添加到其中一个视图中.我的应用崩溃了:

2016-09-11 17:37:22.425 MYAPPNAME [4619:1284144] ***断言失败 – [ULFeedView _dequeueReusableViewOfType:withIdentifier:],/ buildroot / Library / Cache / com.apple.xbs / source / UIKit / UIKit- 3512.60.12 / UITableView.m:6539

我尝试过不同的手势识别器(例如点击识别器)和不同的子视图,但它们都会使我的应用程序崩溃.

一个有趣的观察:如果我在awakeFromNib上以编程方式将识别器添加到视图中,它不会崩溃.

以下是一些可能相关的方法

-(void)tableView:(UITableView *)tableView didSELEctRowATindexPath:(NSIndexPath *)indexPath{
    [tableView deSELEctRowATindexPath:indexPath animated:YES];
    if(indexPath.section != SECTION_CONTENT){
        return; //index path section is NOT equal to SECTION CONTENT for the cell in question,so it will always return.
    }
    ...
 }

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowATindexPath:(NSIndexPath *)indexPath{
    switch (indexPath.section) {
        case SECTION_MAP:
        {
            ULMapCell *cell = [tableView dequeueReusableCellWithIdentifier:@"map" forIndexPath:indexPath];
            return cell; //the cell in question is this one,so it will always return this cell.
        }
     ...
}

更新:注册nib没有问题.在手势识别器之前,它已经完美地工作了.请停止告诉我如何表视图注册nib,我已经知道这是一个高级iOS开发人员.

更新2:我确认它只在我通过Interface Builder添加它时才会出现,如果我以编程方式将其添加到任何地方都没有问题.

为什么会这样?

解决方法

笔尖中的对象按层次结构组织.顶层通常只有一个对象:根视图(在您的情况下是单元格).但是,nib可以包含多个顶级对象.事实上,手势识别器作为顶级对象添加到笔尖.

任何使用多个顶级对象加载nib的代码都需要知道如何处理它.例如,为UITableViewCell加载nib的代码可以:

>在顶级对象数组中查找单元格对象
>确保没有其他单元格(因为添加一个可供选择的启发式方法是不切实际的)
>忽略所有顶级UIGestureRecognizer,因为它们被添加到的视图保留
>确保顶级对象数组中没有其他内容

不幸的是,Apple在加载UITableViewCell和UICollectionViewCell nib时选择处理多个顶级对象的方式是抛出异常.这就是我们无法在Interface Builder中向单元格添加手势识别器的原因.

大佬总结

以上是大佬教程为你收集整理的ios – 为什么在Interface Builder中向UITableViewCell子类添加手势识别器会使应用程序崩溃?全部内容,希望文章能够帮你解决ios – 为什么在Interface Builder中向UITableViewCell子类添加手势识别器会使应用程序崩溃?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。