'NSInternalInconsistencyException',原因:'NIB数据无效。'对于CustomCell

时间:2013-02-22 06:58:15

标签: iphone ios xcode ios5 ios6

我收到了像*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'The NIB data is invalid.'

这样的错误

对于iOS 5.0即使我取消选中AutoLayout并为自定义单元格的所有iOS版本提供部署支持。

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {

        static NSString *CustomCellIdentifier = @"GroupListCell";

        GroupListCell *cell = (GroupListCell *)[tableView dequeueReusableCellWithIdentifier: CustomCellIdentifier];

            if (cell == nil)
            {
                NSArray *nib;

                if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad)
                {
                    nib= [[NSBundle mainBundle] loadNibNamed:@"GroupListCell" owner:self options:nil];
                }
                else{
                    nib= [[NSBundle mainBundle] loadNibNamed:@"GroupListiPhoneCell" owner:self options:nil]; // sigabrt
                }
                // cell implementation code..
           }
}

此代码适用于iOS6.0但不适用于iOS 5.0 问题是什么?我错过了什么。

5 个答案:

答案 0 :(得分:15)

使用下图中设置的值检查nib文件 enter image description here

同时检查UILabel UIButton文字

enter image description here

答案 1 :(得分:4)

某段时间AutoLayout也可能导致问题。因此,请使用xib文件 - 检查器窗格 - 取消勾选autolayout

答案 2 :(得分:2)

最后我发现了这个问题。

我的单元格中有一个textview,即使Text属性定义为“Plain”,它也归因于文本。它在“平原”中没有改变。因为手动更改文本并使用enter关键字转到下一行。在内部,它被视为“归属”。

因此,请检查TextView的text属性2次。 :)

答案 3 :(得分:1)

您的案例中可能缺少用于提取单元格的代码。希望以下更正的代码有效。

if (cell == nil)
            {
                NSArray *nib;

                if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad)
                {
                    nib= [[NSBundle mainBundle] loadNibNamed:@"GroupListCell" owner:self options:nil];

                  cell = [nib objectAtindex:0]; 
                }
                else{
                    nib= [[NSBundle mainBundle] loadNibNamed:@"GroupListiPhoneCell" owner:self options:nil]; // sigabrt
                  cell = [nib objectAtindex:0];
                }
                // cell implementation code..
           }

答案 4 :(得分:1)

对于较低版本的iOS 6,可能会发生这种情况。

解决这个问题

选择故事板然后

File Inspector - > Interface Builder Document取消选中Use Auto Layout

File Inspector - > Localization取消选中Base并检查English