美文网首页iOS
Contacts(TableViewController)报错总

Contacts(TableViewController)报错总

作者: Edie小哪吒 | 来源:发表于2017-07-24 18:58 被阅读7次

    1. mock网络问题

    问题:mock网络的JSON数据无法获取

    • 提示:mock请求出错:mock....7777
    • 原因:mock请求时获取ip地址失败。
    • 修改方法:serviceProvider脚本中的获取ip方法语句改为
    ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}'
    

    2.TableViewCell

    问题:返回cell为nil

    • 出错提示如图:


      错误1.png错误1.png

      Assertion failure in -[UITableView configureCellForDisplay:forIndexPath:]......

    • 出错原因:没有register cell 的 identifier@“getContact"
      Because cellForRowAtIndexPath is returning a nil value and then configureCellForDisplay is expecting a UITableViewCell. The storyboard or XIB does not have a cell defined with the cell identifier you specified. Better check the spelling of identifier.

    • 解决:
      register方法:UITableView registerClass:

    - (void)registerClass:(nullable Class)cellClass forCellReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(6_0);
    

    tableView调用方法register:

     [self.tableView registerClass:[ContactsTableViewCell class] forCellReuseIdentifier:@"ContactsTableViewCell"];
    

    提示:register应该在tableView初始化之后:

    self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
    [self.tableView registerClass:[ContactsTableViewCell class] forCellReuseIdentifier:@"ContactsTableViewCell"];
    
    

    问题:cell添加到父视图

    • 出错提示:failure in configureCellForDisplay:forIndexPath....
    • 出错原因:cell的view(checkContainerView)没有作为子视图添加到父视图contentView中。同时添加约束要在addSubview之后,否则会导致崩溃。
    • 解决:在子视图创建后,addSubView
        _checkContainerView = [UIView new];
        [self.contentView addSubview:_checkContainerView];
    
    

    问题:cell创建失败

    • 出错提示:failure in configureCellForDisplay:forIndexPath....
    • 出错原因:方法缺少参数:forIndexPath
    • 解决:补上参数
    ContactsTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ContactsTableViewCell" forIndexPath:indexPath];
    

    3、数据类型

    问题:数据类型出错

    • 出错提示failure in -[_NSCFNumber methodSignatureForSelector:]

    • 出错原因:返回的数据类型与控件所需要的数据类型不符,此处为JSON中数据类型为Number,但绑定的控件所需的数据类型是NSString。(提示:JSON文件中的string 要加双引号。)

    • 解决:把 JSON中认定是string的value加上双引号。

    {"contactName": "Tom2",
                            "contactId": "1473490800002",
                            "contactNumber": "1473307200002",
                            "contactAdd":"杭州"}
    
    

    相关文章

      网友评论

        本文标题:Contacts(TableViewController)报错总

        本文链接:https://www.haomeiwen.com/subject/xdtikxtx.html