【问题标题】:NSInvalidArgumentException', reason: '-[UITableView setSeparatorInset:]: unrecognized selector sent to instanceNSInvalidArgumentException',原因:'-[UITableView setSeparatorInset:]:无法识别的选择器发送到实例
【发布时间】:2013-11-04 06:38:27
【问题描述】:

viewWillAppear 中的以下内容

    [SYPTableView setSeparatorInset:UIEdgeInsetsZero];

在 iOS 7 上运行良好,但在 6.1 上它引发了异常:

    NSInvalidArgumentException', reason: '-[UITableView setSeparatorInset:]: unrecognized selector sent to instance 

我的目的是删除单元格边框。

【问题讨论】:

    标签: ios objective-c unrecognized-selector


    【解决方案1】:

    separatorInset 属性在 iOS 7.0 的 UITableView 上可用,这就是您在 iOS 6.1 上遇到异常的原因。

    从您发布的代码看来,您希望删除 iOS 7 中引入的默认插图。iOS 6 中不存在此类插图,因此您只需删除 iOS 7 中的插图。

    可以查看表格视图是否响应setSeparatorInset:doing

    if ([SVPTableView respondsToSelector:@selector(setSeparatorInset:)]) {
        [SYPTableView setSeparatorInset:UIEdgeInsetsZero];
    }
    

    【讨论】:

    • 那么 iOS 6.1 的替代方案是什么?
    • @Petronnel,我都支持。我的问题是什么是“合理的”
    • iOS 6 中没有分隔符插入。如果您的目的是删除 iOS 7 中引入的默认插入,则在 iOS 6 中您可以什么都不做,因为默认情况下没有插入。
    • 我的目的是删除单元格边框。没有这条线,单元格边框将显示出来。
    • 这是删除单元格边框的错误方法,请阅读文档。您希望将 separatorStyle 属性设置为 UITableViewCellSeparatorStyleNone
    【解决方案2】:

    如果您使用的是 ios 6 等,请使用以下内容

     SEL selector;
     selector=NSSelectorFromString(@"setSeparatorInset:");
     if([table respondsToSelector:selector])
    {
        @try {
            dispatch_async(dispatch_get_main_queue(), ^{
                NSMethodSignature *aSignature;
                NSInvocation *anInvocation;
                aSignature=[table methodSignatureForSelector:selector];
                anInvocation=[NSInvocation invocationWithMethodSignature:aSignature];
                [anInvocation setSelector:selector];
                [anInvocation setTarget:table];
                UIEdgeInsets temp=UIEdgeInsetsZero;
                [anInvocation setArgument:&temp atIndex:2];
                [anInvocation invoke];
            });
    
    
        }
        @catch (NSException *exception) {
            NSLog(@"EXCEPTION WHILE CALLING Separator inset => %@",[exception userInfo]);
        }
        @finally {
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-28
      • 2023-03-11
      相关资源
      最近更新 更多