【问题标题】:Issue feeding dynamically the uitableview in the masterview controller of a master/detail app在主/详细应用程序的主视图控制器中动态地提供 uitableview
【发布时间】:2011-12-26 16:03:21
【问题描述】:

在创建基于主/详细应用程序模板的项目后,我正在尝试提供主视图的内容。

我基本上有一个模型,它包含了我以后可能会更改的所有数据。我想通过提供每个部分的行数和具有此模型的部分的数量来自动提供 tableview 的内容。

我设法通过覆盖以下 2 个函数来做到这一点:

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

如果我没有编辑主视图控制器的情节提要 - 主场景,我得到了一个 NSRangeException 异常,这样它反映的部分和部分中的行比我的模型所拥有的要多。

例如:我为 Master Scene 留下了 1 个部分和 1 行的故事板。如果我在 numberOfRowsInSection 函数中返回 2,我的程序将在运行时崩溃并出现此 NSRangeExceptionError 错误:

2011-10-10 14:38:53.042 sample_project[3636:f803] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]'

*** First throw call stack:

(0x13bb052 0x154cd0a 0x13a7674 0x432805 0x24227a 0x1ed548 0x1ef722 0x9f7c7 0x9f2c1 0xa228c 0xa6783 0x51301 0x13bce72 0x1d6592d 0x1d6f827 0x1cf5fa7 0x1cf7ea6 0x1d8330c 0x114c6 0x11bd6 0x20743 0x211f8 0x14aa9 0x12a5fa9 0x138f1c5 0x12f4022 0x12f290a 0x12f1db4 0x12f1ccb 0x112a7 0x12a9b 0x25e2 0x2555)

terminate called throwing an exceptionsharedlibrary apply-load-rules all

Current language:  auto; currently objective-c

(gdb) 

有人看到这种行为的原因吗?我错过了什么吗?我是否需要进行一些额外的初始化,以便在控制器的 didLoad 函数中为 tableview 设置默认大小?

【问题讨论】:

    标签: model-view-controller ios5 uitableview master-detail


    【解决方案1】:

    您的更多代码实际上会有所帮助,但无论如何,

    IOS5中UIKit做了一些改动,请查看以下链接,以免代码中其他任何地方发生冲突。

    IOS 5 Release Notes

    NSIndexPath 也有变化,请特别检查。根据苹果文档,

    NSIndexPath 的 indexPathForRow:inSection:、section 和 row 方法现在使用 NSInteger 而不是 NSUInteger,以便这些类型与 UITableView 上定义的方法匹配。

    如果你找到答案,请分享。

    【讨论】:

      【解决方案2】:

      我发现默认的表格视图内容属性设置为静态。您可以将其更改为动态原型。您需要为单元格提供一个标识符:我不确定它是如何使用的。这解决了我上面提到的崩溃。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-20
        • 2014-05-07
        • 2016-07-18
        相关资源
        最近更新 更多